1.新建gradle.properties

在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

2.创建插件脚本 maven_push.gradle

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"
  }
}

3.导入上传脚本

然后在library/build.gradle导入maven_push.gradle脚本:

apply from: 'maven_push.gradle'

4.执行gradle上传任务

然后Sync gradle一下,会发现Gradle任务窗口,多了upload任务快,里面有uploadArchives task. 右键->Run 或 双击

或者命令行执行

gradlew :moudleName:uploadArchives