Skip to content

Commit 53c21a1

Browse files
committed
Merge pull request #84 from ParsePlatform/wangmengyan.add_upload_archive_script
Update build script to upload archives to Maven
2 parents bd5e917 + 3d4843b commit 53c21a1

File tree

2 files changed

+205
-0
lines changed

2 files changed

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

0 commit comments

Comments
 (0)