Refactor the maven upload build stuff
This also adds the required javadoc jars
diff --git a/build.gradle b/build.gradle
index e571f0e..e291e8f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -64,13 +64,13 @@
task release() {
}
+// The projects that get pushed to maven
+def maven_release_projects = ['smali', 'baksmali', 'dexlib2', 'util']
+
subprojects {
apply plugin: 'java'
apply plugin: 'idea'
- apply plugin: 'maven'
- apply plugin: 'signing'
- group = 'org.smali'
version = parent.version
ext {
@@ -93,52 +93,74 @@
mavenCentral()
}
- signing {
- required { gradle.taskGraph.hasTask("uploadArchives") }
- sign configurations.archives
- }
+ if (project.name in maven_release_projects) {
+ apply plugin: 'maven'
+ apply plugin: 'signing'
- uploadArchives {
- repositories.mavenDeployer {
- configuration = configurations.archives
+ group = 'org.smali'
- beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+ task javadocJar(type: Jar, dependsOn: javadoc) {
+ classifier = 'javadoc'
+ from 'build/docs/javadoc'
+ }
- if (rootProject.hasProperty('sonatypeUsername') && rootProject.hasProperty('sonatypePassword')) {
- repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
- authentication(userName: sonatypeUsername, password: sonatypePassword)
- }
- }
+ task sourcesJar(type: Jar) {
+ classifier = 'sources'
+ from sourceSets.main.allJava
+ }
- pom.artifactId = project.name
+ artifacts {
+ archives javadocJar
+ archives sourcesJar
+ }
- pom.project {
- name project.name
- url 'http://smali.org'
- packaging 'jar'
- licenses {
- license {
- name 'The BSD 3-Clause License'
- url 'http://opensource.org/licenses/BSD-3-Clause'
- distribution 'repo'
+ signing {
+ required { gradle.taskGraph.hasTask("uploadArchives") }
+ sign configurations.archives
+ }
+
+ uploadArchives {
+ repositories.mavenDeployer {
+ configuration = configurations.archives
+
+ beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
+
+ if (rootProject.hasProperty('sonatypeUsername') && rootProject.hasProperty('sonatypePassword')) {
+ repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
+ authentication(userName: sonatypeUsername, password: sonatypePassword)
}
}
- scm {
- connection 'scm:git:git://github.com/JesusFreke/smali.git'
- developerConnection 'scm:git:git@github.com:JesusFreke/smali.git'
- }
- developers {
- developer {
- id 'jesusfreke'
- name 'Ben Gruver'
- email 'jesusfreke@jesusfreke.com'
+
+ pom.artifactId = project.name
+
+ pom.project {
+ name project.name
+ url 'http://smali.org'
+ packaging 'jar'
+ licenses {
+ license {
+ name 'The BSD 3-Clause License'
+ url 'http://opensource.org/licenses/BSD-3-Clause'
+ distribution 'repo'
+ }
+ }
+ scm {
+ connection 'scm:git:git://github.com/JesusFreke/smali.git'
+ developerConnection 'scm:git:git@github.com:JesusFreke/smali.git'
+ }
+ developers {
+ developer {
+ id 'jesusfreke'
+ name 'Ben Gruver'
+ email 'jesusfreke@jesusfreke.com'
+ }
}
}
}
}
- }
- tasks.getByPath(':release').dependsOn(uploadArchives)
+ tasks.getByPath(':release').dependsOn(uploadArchives)
+ }
}
buildscript {