diff --git a/ParseUI-Login/build.gradle b/ParseUI-Login/build.gradle index b577543..6e1416f 100644 --- a/ParseUI-Login/build.gradle +++ b/ParseUI-Login/build.gradle @@ -19,8 +19,12 @@ * */ +import com.android.builder.core.BuilderConstants + apply plugin: 'android-library' +version = "0.0.1" + dependencies { compile 'com.android.support:support-v4:23.0.1' compile 'com.parse:parse-android:1.10.3' @@ -37,5 +41,104 @@ android { defaultConfig { minSdkVersion 9 targetSdkVersion 21 + versionName project.version + versionCode 1 + } +} + +android.libraryVariants.all { variant -> + def name = variant.buildType.name + + def javadocTask = task("javadoc${variant.name.capitalize()}", type: Javadoc) { + description "Generates Javadoc for $variant.name." + source = variant.javaCompile.source + ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" + classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar) + + options.linksOffline("http://d.android.com/reference", "${android.sdkDirectory}/docs/reference") + options.links("http://boltsframework.github.io/docs/android/") + + exclude '**/BuildConfig.java' + exclude '**/R.java' + exclude '**/internal/**' + exclude '**/oauth/**' + } + + def javadocJarTask = task("javadocJar${variant.name.capitalize()}", type: Jar, dependsOn: "javadoc${variant.name.capitalize()}") { + classifier = 'javadoc' + from javadocTask.destinationDir + } + + if (name.equals(BuilderConstants.RELEASE)) { + artifacts.add('archives', javadocJarTask); + } +} + +//region Maven + +apply plugin: 'maven' +apply plugin: 'signing' + +def isSnapshot = version.endsWith('-SNAPSHOT') +def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : System.getenv('CI_NEXUS_USERNAME') +def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : System.getenv('CI_NEXUS_PASSWORD') + +uploadArchives { + repositories.mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + pom.project { + name 'ParseUI-Login-Android' + packaging 'aar' + artifactId 'parseui-login-android' + description 'A library contains login user interfaces for building apps with the Parse Android SDK.' + url 'https://github.com/ParsePlatform/ParseUI-Android' + + scm { + connection 'scm:git@github.com:ParsePlatform/ParseUI-Android.git' + developerConnection 'scm:git@github.com:ParsePlatform/ParseUI-Android.git' + url 'https://github.com/ParsePlatform/ParseUI-Android' + } + + licenses { + license { + name 'BSD License' + url 'https://github.com/ParsePlatform/ParseUI-Android/blob/master/LICENSE' + distribution 'repo' + } + } + + developers { + developer { + id 'parse' + name 'Parse' + } + } + } } } + +signing { + required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") } + sign configurations.archives +} + + +task androidSourcesJar(type: Jar) { + classifier = 'sources' + from android.sourceSets.main.java.sourceFiles +} + +artifacts { + archives androidSourcesJar +} + +//endregion diff --git a/ParseUI-Widget/build.gradle b/ParseUI-Widget/build.gradle index e5100c9..f8cc5b8 100644 --- a/ParseUI-Widget/build.gradle +++ b/ParseUI-Widget/build.gradle @@ -18,8 +18,12 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +import com.android.builder.core.BuilderConstants + apply plugin: 'com.android.library' +version = "0.0.1" + dependencies { compile 'com.parse:parse-android:1.10.3' @@ -36,5 +40,103 @@ android { defaultConfig { minSdkVersion 9 targetSdkVersion 21 + versionName project.version + versionCode 1 + } +} + +android.libraryVariants.all { variant -> + def name = variant.buildType.name + + def javadocTask = task("javadoc${variant.name.capitalize()}", type: Javadoc) { + description "Generates Javadoc for $variant.name." + source = variant.javaCompile.source + ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" + classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar) + + options.linksOffline("http://d.android.com/reference", "${android.sdkDirectory}/docs/reference") + options.links("http://boltsframework.github.io/docs/android/") + + exclude '**/BuildConfig.java' + exclude '**/R.java' + exclude '**/internal/**' + exclude '**/oauth/**' + } + + def javadocJarTask = task("javadocJar${variant.name.capitalize()}", type: Jar, dependsOn: "javadoc${variant.name.capitalize()}") { + classifier = 'javadoc' + from javadocTask.destinationDir + } + + if (name.equals(BuilderConstants.RELEASE)) { + artifacts.add('archives', javadocJarTask); } } + +//region Maven + +apply plugin: 'maven' +apply plugin: 'signing' + +def isSnapshot = version.endsWith('-SNAPSHOT') +def ossrhUsername = hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : System.getenv('CI_NEXUS_USERNAME') +def ossrhPassword = hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : System.getenv('CI_NEXUS_PASSWORD') + +uploadArchives { + repositories.mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + pom.project { + name 'ParseUI-Widget-Android' + artifactId = 'parseui-widget-android' + packaging 'aar' + description 'A library contains ui widgets for building apps with the Parse Android SDK.' + url 'https://github.com/ParsePlatform/ParseUI-Android' + + scm { + connection 'scm:git@github.com:ParsePlatform/ParseUI-Android.git' + developerConnection 'scm:git@github.com:ParsePlatform/ParseUI-Android.git' + url 'https://github.com/ParsePlatform/ParseUI-Android' + } + + licenses { + license { + name 'BSD License' + url 'https://github.com/ParsePlatform/ParseUI-Android/blob/master/LICENSE' + distribution 'repo' + } + } + + developers { + developer { + id 'parse' + name 'Parse' + } + } + } + } +} + +signing { + required { !isSnapshot && gradle.taskGraph.hasTask("uploadArchives") } + sign configurations.archives +} + +task androidSourcesJar(type: Jar) { + classifier = 'sources' + from android.sourceSets.main.java.sourceFiles +} + +artifacts { + archives androidSourcesJar +} + +//endregion