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)
}
}