diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 2f036797bc..225d2b829e 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -1,3 +1,5 @@ +apply plugin: 'maven' + repositories { mavenCentral() } diff --git a/buildSrc/src/main/groovy/DefaultPublishTasks.groovy b/buildSrc/src/main/groovy/DefaultPublishTasks.groovy new file mode 100644 index 0000000000..140aeefaba --- /dev/null +++ b/buildSrc/src/main/groovy/DefaultPublishTasks.groovy @@ -0,0 +1,20 @@ +import org.gradle.api.* +import org.gradle.api.tasks.bundling.Jar +import org.gradle.api.tasks.javadoc.Javadoc + +/** + * A utility plugin that when applied will automatically create source and javadoc publishing tasks + */ +class DefaultPublishTasks implements Plugin { + void apply(Project project) { + project.task("sourceJar", type: Jar, dependsOn: project.classes) { + classifier = 'sources' + from project.sourceSets.main.allSource + } + + project.task("javadocJar", type: Jar, dependsOn: project.javadoc) { + classifier = 'javadoc' + from project.javadoc.destinationDir + } + } +} diff --git a/contracts/build.gradle b/contracts/build.gradle index c484f5638a..2d585d8d04 100644 --- a/contracts/build.gradle +++ b/contracts/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'kotlin' apply plugin: CanonicalizerPlugin +apply plugin: DefaultPublishTasks repositories { mavenLocal() @@ -28,16 +29,6 @@ sourceSets { } } -task sourceJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - publishing { publications { contracts(MavenPublication) { diff --git a/core/build.gradle b/core/build.gradle index ae7c06a063..f75d0df4e6 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'kotlin' apply plugin: QuasarPlugin // Applying the maven plugin means this will get installed locally when running "gradle install" -apply plugin: 'maven' +apply plugin: DefaultPublishTasks buildscript { repositories { @@ -84,16 +84,6 @@ dependencies { compile "org.bouncycastle:bcpkix-jdk15on:${bouncycastle_version}" } -task sourceJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - publishing { publications { core(MavenPublication) { diff --git a/node/build.gradle b/node/build.gradle index a2f3ee9d12..104208501a 100644 --- a/node/build.gradle +++ b/node/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'kotlin' apply plugin: QuasarPlugin +apply plugin: DefaultPublishTasks repositories { mavenLocal() @@ -16,7 +17,6 @@ repositories { //noinspection GroovyAssignabilityCheck configurations { - // we don't want isolated.jar in classPath, since we want to test jar being dynamically loaded as an attachment runtime.exclude module: 'isolated' @@ -143,16 +143,6 @@ task integrationTest(type: Test) { classpath = sourceSets.integrationTest.runtimeClasspath } -task sourceJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - publishing { publications { node(MavenPublication) {