Skip to content

Commit 54bcc4a

Browse files
committed
Update build script to upload archives to Maven
1 parent bd5e917 commit 54bcc4a

File tree

2 files changed

+226
-0
lines changed

2 files changed

+226
-0
lines changed

ParseUI-Login/build.gradle

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,12 @@
1919
*
2020
*/
2121

22+
import com.android.builder.core.BuilderConstants
23+
2224
apply plugin: 'android-library'
2325

26+
version = "0.0.1"
27+
2428
dependencies {
2529
compile 'com.android.support:support-v4:23.0.1'
2630
compile 'com.parse:parse-android:1.10.3'
@@ -37,5 +41,104 @@ android {
3741
defaultConfig {
3842
minSdkVersion 9
3943
targetSdkVersion 21
44+
versionName project.version
45+
versionCode 1
46+
}
47+
}
48+
49+
android.libraryVariants.all { variant ->
50+
def name = variant.buildType.name
51+
52+
def javadocTask = task("javadoc${variant.name.capitalize()}", type: Javadoc) {
53+
description "Generates Javadoc for $variant.name."
54+
source = variant.javaCompile.source
55+
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
56+
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
57+
58+
options.linksOffline("http://d.android.com/reference", "${android.sdkDirectory}/docs/reference")
59+
options.links("http://boltsframework.github.io/docs/android/")
60+
61+
exclude '**/BuildConfig.java'
62+
exclude '**/R.java'
63+
exclude '**/internal/**'
64+
exclude '**/oauth/**'
65+
}
66+
67+
def javadocJarTask = task("javadocJar${variant.name.capitalize()}", type: Jar, dependsOn: "javadoc${variant.name.capitalize()}") {
68+
classifier = 'javadoc'
69+
from javadocTask.destinationDir
70+
}
71+
72+
if (name.equals(BuilderConstants.RELEASE)) {
73+
artifacts.add('archives', javadocJarTask);
74+
}
75+
}
76+
77+
//region Maven
78+
79+
apply plugin: 'maven'
80+
apply plugin: 'signing'
81+
82+
def isSnapshot = version.endsWith('-SNAPSHOT')
83+
def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : System.getenv('CI_NEXUS_USERNAME')
84+
def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : System.getenv('CI_NEXUS_PASSWORD')
85+
86+
uploadArchives {
87+
repositories.mavenDeployer {
88+
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
89+
90+
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
91+
authentication(userName: ossrhUsername, password: ossrhPassword)
92+
}
93+
94+
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
95+
authentication(userName: ossrhUsername, password: ossrhPassword)
96+
}
97+
98+
pom.project {
99+
name 'ParseUI-Login-Android'
100+
packaging 'aar'
101+
artifactId 'parseui-login-android'
102+
description 'A library contains login user interfaces for building apps with the Parse Android SDK.'
103+
url 'https://github.com/ParsePlatform/ParseUI-Android'
104+
105+
scm {
106+
connection 'scm:[email protected]:ParsePlatform/ParseUI-Android.git'
107+
developerConnection 'scm:[email protected]:ParsePlatform/ParseUI-Android.git'
108+
url 'https://github.com/ParsePlatform/ParseUI-Android'
109+
}
110+
111+
licenses {
112+
license {
113+
name 'BSD License'
114+
url 'https://github.com/ParsePlatform/ParseUI-Android/blob/master/LICENSE'
115+
distribution 'repo'
116+
}
117+
}
118+
119+
developers {
120+
developer {
121+
id 'parse'
122+
name 'Parse'
123+
}
124+
}
125+
}
40126
}
41127
}
128+
129+
signing {
130+
required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") }
131+
sign configurations.archives
132+
}
133+
134+
135+
task androidSourcesJar(type: Jar) {
136+
classifier = 'sources'
137+
from android.sourceSets.main.java.sourceFiles
138+
}
139+
140+
artifacts {
141+
archives androidSourcesJar
142+
}
143+
144+
//endregion

ParseUI-Widget/build.gradle

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@
1818
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1919
*/
2020

21+
import com.android.builder.core.BuilderConstants
22+
2123
apply plugin: 'com.android.library'
2224

25+
version = "0.0.1"
26+
2327
dependencies {
2428
compile 'com.parse:parse-android:1.10.3'
2529

@@ -36,5 +40,124 @@ android {
3640
defaultConfig {
3741
minSdkVersion 9
3842
targetSdkVersion 21
43+
versionName project.version
44+
versionCode 1
45+
}
46+
}
47+
48+
android.libraryVariants.all { variant ->
49+
def name = variant.buildType.name
50+
51+
def jarTask = task("jar${name.capitalize()}", type: Jar) {
52+
dependsOn variant.javaCompile
53+
from variant.javaCompile.destinationDir
54+
55+
manifest {
56+
attributes(
57+
"Bundle-Name": 'parseui-widget-android',
58+
"Bundle-Version": project.version
59+
)
60+
}
61+
62+
exclude '**/R.class'
63+
exclude '**/R\$*.class'
64+
exclude '**/Manifest.class'
65+
exclude '**/Manifest\$*.class'
66+
exclude '**/BuildConfig.class'
67+
68+
baseName 'ParseUI-Widget'
69+
}
70+
71+
def javadocTask = task("javadoc${variant.name.capitalize()}", type: Javadoc) {
72+
description "Generates Javadoc for $variant.name."
73+
source = variant.javaCompile.source
74+
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
75+
classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)
76+
77+
options.linksOffline("http://d.android.com/reference", "${android.sdkDirectory}/docs/reference")
78+
options.links("http://boltsframework.github.io/docs/android/")
79+
80+
exclude '**/BuildConfig.java'
81+
exclude '**/R.java'
82+
exclude '**/internal/**'
83+
exclude '**/oauth/**'
84+
}
85+
86+
def javadocJarTask = task("javadocJar${variant.name.capitalize()}", type: Jar, dependsOn: "javadoc${variant.name.capitalize()}") {
87+
classifier = 'javadoc'
88+
from javadocTask.destinationDir
89+
}
90+
91+
if (name.equals(BuilderConstants.RELEASE)) {
92+
artifacts.add('archives', jarTask);
93+
artifacts.add('archives', javadocJarTask);
94+
}
95+
}
96+
97+
//region Maven
98+
99+
apply plugin: 'maven'
100+
apply plugin: 'signing'
101+
102+
def isSnapshot = version.endsWith('-SNAPSHOT')
103+
def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : System.getenv('CI_NEXUS_USERNAME')
104+
def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : System.getenv('CI_NEXUS_PASSWORD')
105+
106+
uploadArchives {
107+
repositories.mavenDeployer {
108+
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
109+
110+
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
111+
authentication(userName: ossrhUsername, password: ossrhPassword)
112+
}
113+
114+
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
115+
authentication(userName: ossrhUsername, password: ossrhPassword)
116+
}
117+
118+
pom.project {
119+
name 'ParseUI-Widget-Android'
120+
artifactId = 'parseui-widget-android'
121+
packaging 'jar'
122+
description 'A library contains ui widgets for building apps with the Parse Android SDK.'
123+
url 'https://github.com/ParsePlatform/ParseUI-Android'
124+
125+
scm {
126+
connection 'scm:[email protected]:ParsePlatform/ParseUI-Android.git'
127+
developerConnection 'scm:[email protected]:ParsePlatform/ParseUI-Android.git'
128+
url 'https://github.com/ParsePlatform/ParseUI-Android'
129+
}
130+
131+
licenses {
132+
license {
133+
name 'BSD License'
134+
url 'https://github.com/ParsePlatform/ParseUI-Android/blob/master/LICENSE'
135+
distribution 'repo'
136+
}
137+
}
138+
139+
developers {
140+
developer {
141+
id 'parse'
142+
name 'Parse'
143+
}
144+
}
145+
}
39146
}
40147
}
148+
149+
signing {
150+
required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") }
151+
sign configurations.archives
152+
}
153+
154+
task androidSourcesJar(type: Jar) {
155+
classifier = 'sources'
156+
from android.sourceSets.main.java.sourceFiles
157+
}
158+
159+
artifacts {
160+
archives androidSourcesJar
161+
}
162+
163+
//endregion

0 commit comments

Comments
 (0)