gradle上传aar到私有仓库

在对应module目录下添加upload.gradle

apply plugin: 'maven'
 
//def定义的变量才会在project中
def POM_NAME='mocklib'
def POM_VERSION='1.0.0'
def POM_ARTIFACTID="mocklib"//项目名称id
def POM_GROUPID='com.xxx.xxx'  //项目组id
def POM_PACKAGING='aar'
def POM_DESCRIPTION='mocklib for Android'
def NEXUS_USERNAME='username'   //用户名
def NEXUS_PASSWORD='password'  //密码
def NEXUS_REPOSITORY_URL='url'  //repository的URL
task androidSourcesJar(type: Jar) {
    classifier = 'sources'//分类器,区分jar
    from android.sourceSets.main.java.srcDirs
}
artifacts {
    archives androidSourcesJar
}
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: NEXUS_REPOSITORY_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
            pom.project {
                name POM_NAME
                version POM_VERSION
                artifactId POM_ARTIFACTID
                groupId POM_GROUPID
                packaging POM_PACKAGING
                description POM_DESCRIPTION
            }
        }
    }
}

这里有几个必填的值:

  • POM_ARTIFACTID是自己的module的名字
  • POM_GROUPID是命名空间

引用的时候就是implementation "group_id:artifactId:version"

其他的一些就是仓库的url,username,passowrld,version等等。

然后在build.gradle里的最后添加一行。

apply from: 'upload.gradle'

这时候gradle里应该就有一个uploadArchives的task,只需要运行这个task就可以上传了。

注意: 一般正式版本是无法修改的,比如v1.0.0不能上传两次,修改了代码上传前记得修改version,snapshot版本是可以修改的,可以同一个version上传多次。

你可能感兴趣的:(gradle上传aar到私有仓库)