在对应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上传多次。