在library module 下新建gradle.properties,并配置:
VERSION=1.0
GROUP_ID=com.maven.studo.library
ARTIFACT_ID=test
RELEASE_URL=http://192.168.86.130:8081/repository/{release仓库名}/
SNAPSHOT_URL=http://192.168.86.130:8081/repository/{snapshot仓库名}/
NAME=admin
PASSWORD=admin123
apply plugin: 'maven'
apply plugin: 'signing'
def isReleaseBuild() {
return VERSION_NAME.contains("SNAPSHOT") == false
}
def getReleaseRepositoryUrl() {
return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL : "http://xxxx:9009/nexus/content/repositories/android-releases/"
}
def getSnapshotRepositoryUrl() {
return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL : "http://xxxx:9009/nexus/content/repositories/android-snapshots/"
}
def getRepositoryUsername() {
return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""
}
def getRepositoryPassword() {
return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""
}
signing {
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives")}
sign configurations.archives
}
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
pom.groupId = GROUP
pom.artifactId = POM_ARTIFACT_ID
pom.version = VERSION_NAME
repository(url: getReleaseRepositoryUrl()) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
snapshotRepository(url: getSnapshotRepositoryUrl()) {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}
}
}
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
options {
encoding "UTF-8"
links "http://docs.oracle.com/javase/7/docs/api/"
linksOffline "http://d.android.com/reference", "${android.sdkDirectory}/docs/reference"
}
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
archives androidJavadocsJar
"${project.buildDir}/outputs/aar/${project.name}-release.aar"
}
}
然后在library/build.gradle导入maven_push.gradle脚本:
apply from: 'maven_push.gradle'
然后Sync gradle一下,会发现Gradle任务窗口,多了upload任务快,里面有uploadArchives task. 右键->Run 或 双击
或者命令行执行
gradlew :moudleName:uploadArchives