Example #1
0
  private void addRunTask() {
    JavaExec run = project.getTasks().create(TASK_RUN_NAME, JavaExec.class);
    run.setDescription("Runs this project as a JVM application");
    run.setGroup(APPLICATION_GROUP);

    JavaPluginConvention javaPluginConvention =
        project.getConvention().getPlugin(JavaPluginConvention.class);
    run.setClasspath(
        javaPluginConvention
            .getSourceSets()
            .getByName(SourceSet.MAIN_SOURCE_SET_NAME)
            .getRuntimeClasspath());
    run.getConventionMapping()
        .map(
            "main",
            new Callable<Object>() {
              @Override
              public Object call() throws Exception {
                return pluginConvention.getMainClassName();
              }
            });
    run.getConventionMapping()
        .map(
            "jvmArgs",
            new Callable<Object>() {
              @Override
              public Object call() throws Exception {
                return pluginConvention.getApplicationDefaultJvmArgs();
              }
            });
  }
Example #2
0
  private void configureSourceSetDefaults(final JavaPluginConvention pluginConvention) {
    pluginConvention
        .getSourceSets()
        .all(
            new Action<SourceSet>() {
              public void execute(final SourceSet sourceSet) {
                final Project project = pluginConvention.getProject();

                ConventionMapping outputConventionMapping =
                    ((IConventionAware) sourceSet.getOutput()).getConventionMapping();

                ConfigurationContainer configurations = project.getConfigurations();

                Configuration compileConfiguration =
                    configurations.findByName(sourceSet.getCompileConfigurationName());
                if (compileConfiguration == null) {
                  compileConfiguration =
                      configurations.add(sourceSet.getCompileConfigurationName());
                }
                compileConfiguration.setVisible(false);
                compileConfiguration.setDescription(
                    String.format("Classpath for compiling the %s sources.", sourceSet.getName()));

                Configuration runtimeConfiguration =
                    configurations.findByName(sourceSet.getRuntimeConfigurationName());
                if (runtimeConfiguration == null) {
                  runtimeConfiguration =
                      configurations.add(sourceSet.getRuntimeConfigurationName());
                }
                runtimeConfiguration.setVisible(false);
                runtimeConfiguration.extendsFrom(compileConfiguration);
                runtimeConfiguration.setDescription(
                    String.format(
                        "Classpath for running the compiled %s classes.", sourceSet.getName()));

                sourceSet.setCompileClasspath(compileConfiguration);
                sourceSet.setRuntimeClasspath(sourceSet.getOutput().plus(runtimeConfiguration));

                outputConventionMapping.map(
                    "classesDir",
                    new Callable<Object>() {
                      public Object call() throws Exception {
                        String classesDirName = String.format("classes/%s", sourceSet.getName());
                        return new File(project.getBuildDir(), classesDirName);
                      }
                    });
                outputConventionMapping.map(
                    "resourcesDir",
                    new Callable<Object>() {
                      public Object call() throws Exception {
                        String classesDirName = String.format("resources/%s", sourceSet.getName());
                        return new File(project.getBuildDir(), classesDirName);
                      }
                    });

                sourceSet.getJava().srcDir(String.format("src/%s/java", sourceSet.getName()));
                sourceSet
                    .getResources()
                    .srcDir(String.format("src/%s/resources", sourceSet.getName()));

                Copy processResources =
                    project
                        .getTasks()
                        .add(sourceSet.getProcessResourcesTaskName(), ProcessResources.class);
                processResources.setDescription(
                    String.format("Processes the %s.", sourceSet.getResources()));
                ConventionMapping conventionMapping = processResources.getConventionMapping();
                processResources.from(sourceSet.getResources());
                conventionMapping.map(
                    "destinationDir",
                    new Callable<Object>() {
                      public Object call() throws Exception {
                        return sourceSet.getOutput().getResourcesDir();
                      }
                    });

                String compileTaskName = sourceSet.getCompileJavaTaskName();
                JavaCompile compileJava =
                    project.getTasks().add(compileTaskName, JavaCompile.class);
                configureForSourceSet(sourceSet, compileJava);

                Task classes = project.getTasks().add(sourceSet.getClassesTaskName());
                classes.dependsOn(sourceSet.getProcessResourcesTaskName(), compileTaskName);
                classes.setDescription(
                    String.format("Assembles the %s classes.", sourceSet.getName()));
                classes.setGroup(BasePlugin.BUILD_GROUP);
                classes.dependsOn(sourceSet.getOutput().getDirs());

                sourceSet.compiledBy(sourceSet.getClassesTaskName());
              }
            });
  }
Example #3
0
  private void configureSourceSetDefaults(final JavaPluginConvention pluginConvention) {
    final Project project = pluginConvention.getProject();
    final ProjectSourceSet projectSourceSet =
        project.getExtensions().getByType(ProjectSourceSet.class);

    pluginConvention
        .getSourceSets()
        .all(
            new Action<SourceSet>() {
              public void execute(final SourceSet sourceSet) {
                ConventionMapping outputConventionMapping =
                    ((IConventionAware) sourceSet.getOutput()).getConventionMapping();

                ConfigurationContainer configurations = project.getConfigurations();

                defineConfigurationsForSourceSet(sourceSet, configurations);
                definePathsForSourceSet(sourceSet, outputConventionMapping, project);
                sourceSet.compiledBy(sourceSet.getClassesTaskName());

                Classpath compileClasspath = new SourceSetCompileClasspath(sourceSet);
                DefaultJavaSourceSet javaSourceSet =
                    instantiator.newInstance(
                        DefaultJavaSourceSet.class,
                        "java",
                        sourceSet.getName(),
                        sourceSet.getJava(),
                        compileClasspath);
                projectSourceSet.add(javaSourceSet);
                JvmResourceSet resourceSet =
                    instantiator.newInstance(
                        DefaultJvmResourceSet.class,
                        "resources",
                        sourceSet.getName(),
                        sourceSet.getResources());
                projectSourceSet.add(resourceSet);

                createProcessResourcesTaskForBinary(sourceSet, resourceSet, project);
                createCompileJavaTaskForBinary(sourceSet, javaSourceSet, project);
                createBinaryLifecycleTask(sourceSet, project);

                ClassDirectoryBinarySpecInternal binary =
                    instantiator.newInstance(
                        DefaultClassDirectoryBinarySpec.class,
                        String.format("%sClasses", sourceSet.getName()),
                        sourceSet,
                        javaToolChain,
                        DefaultJavaPlatform.current(),
                        instantiator,
                        taskFactory);

                binary.addSourceSet(javaSourceSet);
                binary.addSourceSet(resourceSet);

                BinaryContainer binaryContainer =
                    project.getExtensions().getByType(BinaryContainer.class);
                binaryContainer.add(binary);

                attachTasksToBinary(binary, sourceSet, project);
              }
            });
  }
Example #4
0
  private void configureSourceSetDefaults(final JavaPluginConvention pluginConvention) {
    final Project project = pluginConvention.getProject();
    final ProjectSourceSet projectSourceSet =
        project.getExtensions().getByType(ProjectSourceSet.class);

    pluginConvention
        .getSourceSets()
        .all(
            new Action<SourceSet>() {
              public void execute(final SourceSet sourceSet) {
                ConventionMapping outputConventionMapping =
                    ((IConventionAware) sourceSet.getOutput()).getConventionMapping();

                ConfigurationContainer configurations = project.getConfigurations();

                Configuration compileConfiguration =
                    configurations.findByName(sourceSet.getCompileConfigurationName());
                if (compileConfiguration == null) {
                  compileConfiguration =
                      configurations.add(sourceSet.getCompileConfigurationName());
                }
                compileConfiguration.setVisible(false);
                compileConfiguration.setDescription(
                    String.format("Classpath for compiling the %s sources.", sourceSet.getName()));

                Configuration runtimeConfiguration =
                    configurations.findByName(sourceSet.getRuntimeConfigurationName());
                if (runtimeConfiguration == null) {
                  runtimeConfiguration =
                      configurations.add(sourceSet.getRuntimeConfigurationName());
                }
                runtimeConfiguration.setVisible(false);
                runtimeConfiguration.extendsFrom(compileConfiguration);
                runtimeConfiguration.setDescription(
                    String.format(
                        "Classpath for running the compiled %s classes.", sourceSet.getName()));

                sourceSet.setCompileClasspath(compileConfiguration);
                sourceSet.setRuntimeClasspath(sourceSet.getOutput().plus(runtimeConfiguration));

                outputConventionMapping.map(
                    "classesDir",
                    new Callable<Object>() {
                      public Object call() throws Exception {
                        String classesDirName = String.format("classes/%s", sourceSet.getName());
                        return new File(project.getBuildDir(), classesDirName);
                      }
                    });
                outputConventionMapping.map(
                    "resourcesDir",
                    new Callable<Object>() {
                      public Object call() throws Exception {
                        String classesDirName = String.format("resources/%s", sourceSet.getName());
                        return new File(project.getBuildDir(), classesDirName);
                      }
                    });

                sourceSet.getJava().srcDir(String.format("src/%s/java", sourceSet.getName()));
                sourceSet
                    .getResources()
                    .srcDir(String.format("src/%s/resources", sourceSet.getName()));
                sourceSet.compiledBy(sourceSet.getClassesTaskName());

                FunctionalSourceSet functionalSourceSet =
                    projectSourceSet.create(sourceSet.getName());
                Classpath compileClasspath = new SourceSetCompileClasspath(sourceSet);
                DefaultJavaSourceSet javaSourceSet =
                    instantiator.newInstance(
                        DefaultJavaSourceSet.class,
                        "java",
                        sourceSet.getJava(),
                        compileClasspath,
                        functionalSourceSet);
                functionalSourceSet.add(javaSourceSet);
                ResourceSet resourceSet =
                    instantiator.newInstance(
                        DefaultResourceSet.class,
                        "resources",
                        sourceSet.getResources(),
                        functionalSourceSet);
                functionalSourceSet.add(resourceSet);

                JvmBinaryContainer jvmBinaryContainer =
                    project.getPlugins().getPlugin(JvmLanguagePlugin.class).getJvmBinaryContainer();
                ClassDirectoryBinary binary =
                    jvmBinaryContainer.create(sourceSet.getName(), ClassDirectoryBinary.class);
                ConventionMapping conventionMapping = new DslObject(binary).getConventionMapping();
                conventionMapping.map(
                    "classesDir",
                    new Callable<File>() {
                      public File call() throws Exception {
                        return sourceSet.getOutput().getClassesDir();
                      }
                    });
                conventionMapping.map(
                    "resourcesDir",
                    new Callable<File>() {
                      public File call() throws Exception {
                        return sourceSet.getOutput().getResourcesDir();
                      }
                    });

                binary.getSource().add(javaSourceSet);
                binary.getSource().add(resourceSet);

                binary.getClassesTask().dependsOn(sourceSet.getOutput().getDirs());
              }
            });
  }