in library:
apply from: '../mavenupload/maven_push.gradle'
maven_push.gradle:
ext.mvnType = "central"
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
options.addStringOption('charSet', 'UTF-8')
}
if (project.getPlugins().hasPlugin('com.android.application') ||
project.getPlugins().hasPlugin('com.android.library')) {
apply from: "$project.rootDir/mavenupload/$mvnType/maven_push_aar.gradle"
} else if (project.getPlugins().hasPlugin('java')) {
apply from: "$project.rootDir/mavenupload/$mvnType/maven_push_jar.gradle"
}
maven_push_aar.gradle:
// ********************************** upload archives ***********************************
apply plugin: 'maven'
apply plugin: 'signing' //使用signing plugin做数字签名
//定义GroupID和Version,ArtefactID会自动使用Project名
group = "$ARCHIVE_GROUP"
version = "$ARCHIVE_VERSION_NAME"
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.source
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
}
signing {
sign configurations.archives
}
uploadArchives {
repositories {
mavenDeployer {
//为Pom文件做数字签名
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
//指定项目部署到的中央库地址,UserName和Password就是Part 1中注册的账号。
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文件,参见Part 2中Pom文件的规范,不要遗漏必填项
pom.project {
name "$POM_ARCHIVE_ID"
artifactId "$POM_ARCHIVE_ID"
packaging 'aar'
description "$POM_DESC"
url "$POM_URL"
scm {
url "$POM_SCM_URL"
connection "$POM_SCM_CONNECTION"
developerConnection "$POM_SCM_DEV_CONNECTION"
}
licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
}
developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
email POM_DEVELOPER_EMAIL
}
}
}
}
}
}
maven_push_jar.gradle:
// ********************************** upload archives ***********************************
apply plugin: 'maven'
apply plugin: 'signing' //使用signing plugin做数字签名
//定义GroupID和Version,ArtefactID会自动使用Project名
group = "$ARCHIVE_GROUP"
version = "$ARCHIVE_VERSION_NAME"
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar, sourcesJar
}
signing {
sign configurations.archives
}
uploadArchives {
repositories {
mavenDeployer {
//为Pom文件做数字签名
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
//指定项目部署到的中央库地址,UserName和Password就是Part 1中注册的账号。
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文件,参见Part 2中Pom文件的规范,不要遗漏必填项
pom.project {
artifactId "$POM_ARCHIVE_ID"
name "$POM_ARCHIVE_ID"
packaging 'jar'
description "$POM_DESC"
url "$POM_URL"
scm {
url "$POM_SCM_URL"
connection "$POM_SCM_CONNECTION"
developerConnection "$POM_SCM_DEV_CONNECTION"
}
licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
}
developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
email POM_DEVELOPER_EMAIL
}
}
}
}
}
}
module gradle.properties(jar, aar):
POM_ARCHIVE_ID=rapidorm-api
project gradle.properties:
## Maven upload
##################### account info #####################
# configuration in ~/.gradle/gradle.properties
# signing.keyId=xxx
# signing.password=xxx
# signing.secretKeyRingFile=xxx
# ossrhUsername=xxx
# ossrhPassword=xxx
##################### project info #####################
ARCHIVE_GROUP=com.github.wangjiegulu
ARCHIVE_VERSION_NAME=2.2.0
POM_DESC=Quick solutions for Android ORM
POM_URL=https://github.com/wangjiegulu/RapidORM
POM_SCM_URL=scm:git@github.com:wangjiegulu/RapidORM.git
POM_SCM_CONNECTION=scm:git@github.com:wangjiegulu/RapidORM.git
POM_SCM_DEV_CONNECTION=git@github.com:wangjiegulu/RapidORM.git
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=wangjie