// Maven side of things subprojects { apply plugin: 'maven' // Java plugin has to have been already applied for the conf2scope mappings to work apply plugin: 'signing' signing { required { gradle.taskGraph.hasTask(uploadMavenCentral) } sign configurations.archives } /** * Publishing to Maven Central example provided from http://jedicoder.blogspot.com/2011/11/automated-gradle-project-deployment-to.html */ task uploadMavenCentral(type:Upload, dependsOn: signArchives) { configuration = configurations.archives doFirst { repositories.mavenDeployer { beforeDeployment { org.gradle.api.artifacts.maven.MavenDeployment deployment -> signing.signPom(deployment) } // To test deployment locally, use the following instead of oss.sonatype.org //repository(url: "file://localhost/${rootProject.rootDir}/repo") repository(url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2') { authentication(userName: rootProject.sonatypeUsername, password: rootProject.sonatypePassword) } // Prevent datastamp from being appending to artifacts during deployment uniqueVersion = false // Closure to configure all the POM with extra info, common to all projects pom.project { licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' distribution 'repo' } } url "https://github.com/Netflix/${rootProject.githubProjectName}" scm { connection "scm:git:git@github.com:Netflix/${rootProject.githubProjectName}.git" url "scm:git:git@github.com:Netflix/${rootProject.githubProjectName}.git" developerConnection "scm:git:git@github.com:Netflix/${rootProject.githubProjectName}.git" } issueManagement { system 'github' url "https://github.com/Netflix/${rootProject.githubProjectName}/issues" } } } } } }