apply plugin: 'maven' apply plugin: 'scala' apply plugin: 'signing' def isMavenDeployable = hasProperty('mavenRepositoryUrl') && hasProperty('mavenRepositoryUsername') && hasProperty('mavenRepositoryPassword') 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 'MIT' url 'http://opensource.org/licenses/MIT' distribution 'repo' } } scm { url "${parent.project.scm}" connection "${parent.project.scm}" } } } } } }