apply plugin: 'maven' apply plugin: 'signing' def isMavenDeployable = hasProperty('mavenRepositoryUrl') && hasProperty('mavenRepositoryUsername') && hasProperty('mavenRepositoryPassword') dependencies { testCompile 'com.google.caliper:caliper:0.5-rc1' } sourceSets { benchmark { output.resourcesDir "${project.buildDir}/classes/benchmark" java { srcDir 'source/benchmark/java' } resources { srcDir 'source/benchmark/resource' } scala { srcDir 'source/benchmark/scala' } } main { output.resourcesDir "${project.buildDir}/classes/main" java { srcDir 'source/core/java' } resources { srcDir 'source/core/resource' } scala { srcDir 'source/core/scala' } } test { output.resourcesDir "${project.buildDir}/classes/test" java { srcDir 'source/test/java' } resources { srcDir 'source/test/resource' } scala { srcDir 'source/test/scala' } } } if (isMavenDeployable) { signing { sign configurations.archives } task scaladocJar(type: Jar, dependsOn: scaladoc) { classifier = 'javadoc' from "${project.buildDir}/docs/scaladoc" } task sourceJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } artifacts { archives jar archives scaladocJar archives sourceJar } uploadArchives { repositories { mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } repository(url: mavenRepositoryUrl) { authentication(userName: mavenRepositoryUsername, password: mavenRepositoryPassword) } pom.project { description "${parent.project.description}" groupId "${parent.project.group}" name "${project.name}" packaging 'jar' url "${parent.project.url}" version "${parent.project.version}" developers { developer { id 'rockymadden' name 'Rocky Madden' } } licenses { license { name 'Apache License v2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' distribution 'repo' } } scm { url "${parent.project.scm}" connection "${parent.project.scm}" } } } } } }