diff options
Diffstat (limited to 'gradle/maven.gradle')
-rw-r--r-- | gradle/maven.gradle | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/gradle/maven.gradle b/gradle/maven.gradle new file mode 100644 index 0000000..0513719 --- /dev/null +++ b/gradle/maven.gradle @@ -0,0 +1,69 @@ +// Maven side of things +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 + * artifactory will execute uploadArchives to force generation of ivy.xml, and we don't want that to trigger an upload to maven + * central, so using custom upload task. + */ +task uploadMavenCentral(type:Upload, dependsOn: signArchives) { + configuration = configurations.archives + onlyIf { ['release', 'snapshot'].contains(project.status) } + repositories.mavenDeployer { + beforeDeployment { signing.signPom(it) } + + // To test deployment locally, use the following instead of oss.sonatype.org + //repository(url: "file://localhost/${rootProject.rootDir}/repo") + + def sonatypeUsername = rootProject.hasProperty('sonatypeUsername')?rootProject.sonatypeUsername:'' + def sonatypePassword = rootProject.hasProperty('sonatypePassword')?rootProject.sonatypePassword:'' + + repository(url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2') { + authentication(userName: sonatypeUsername, password: sonatypePassword) + } + + snapshotRepository(url: 'https://oss.sonatype.org/content/repositories/snapshots/') { + authentication(userName: sonatypeUsername, password: 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 { + name "${project.name}" + description "Java C Preprocessor" + developers { + developer { + id 'shevek' + name 'Shevek' + email '[email protected]' + } + } + 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/shevek/${rootProject.githubProjectName}" + scm { + connection "scm:git:[email protected]:shevek/${rootProject.githubProjectName}.git" + url "scm:git:[email protected]:shevek/${rootProject.githubProjectName}.git" + developerConnection "scm:git:[email protected]:shevek/${rootProject.githubProjectName}.git" + } + issueManagement { + system 'github' + url "https://github.com/shevek/${rootProject.githubProjectName}/issues" + } + } + } +} + |