private static def setUpArtifactInternal()

in buildSrc/src/main/groovy/com/intellij/rt/coverage/build/ArtifactBuilder.groovy [31:76]


  private static def setUpArtifactInternal(Project project, String artifactName, List<String> extraDependencyModules,
                                           Closure<Jar> configureJar, String alternativeJarTask, boolean fatJar, boolean release) {
    project.tasks.register(alternativeJarTask, Jar) { Jar jar ->
      jar.archiveBaseName.set(artifactName)
      jar.setDuplicatesStrategy(DuplicatesStrategy.FAIL)
      if (release) {
        jar.destinationDirectory.set(new File(project.rootDir, "dist"))
      }
      if (configureJar != null) configureJar(jar)
      jar.from { project.sourceSets.main.output }
      for (String module in extraDependencyModules) {
        def jarTask = (Jar) project.project(module).tasks.named("jar").get()
        jar.dependsOn(jarTask)
        jar.from(project.zipTree(jarTask.archivePath))
      }
      if (fatJar) {
        jar.from { project.configurations.runtimeClasspath.collect { it.isDirectory() ? it : project.zipTree(it) } }
      }
    }

    def modules = extraDependencyModules.collect { project.project(it).sourceSets.main }
    modules.add(project.sourceSets.main)

    // add sources and javadocs
    if (artifactName.contains("intellij-coverage-agent")) {
      [":common", ":", ":util"].forEach { modules.add(project.project(it).sourceSets.main) }
    }

    project.tasks.register("soursesJar", Jar) {
      archiveBaseName = artifactName
      archiveClassifier = 'sources'
      from(modules.collect { it.allSource })
    }

    project.tasks.register("allJavadoc", Javadoc) {
      options.tags = ["noinspection"]
      source = modules.collect { it.allSource }
      classpath = project.files(modules.collect { it.compileClasspath })
    }

    project.tasks.register("javadocJar", Jar) {
      archiveBaseName = artifactName
      archiveClassifier = 'javadoc'
      from project.getTasksByName("allJavadoc", false)
    }
  }