一、配置Maven仓库
首先找到要上传到maven仓库的moudle对应的builder.gradle文件 在最下面 新增如下代码即可 复制即可(放在代码的最下面 不需要被其他代码块包裹)
apply plugin: 'maven'
//打包main目录下代码和资源的 task
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
//配置需要上传到maven仓库的文件
artifacts {
archives androidSourcesJar
}
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: project.mavenUrl) {//maven仓库的地址
authentication(userName: project.mavenName, password: project.mavenPsw)//maven仓库的名字和密码
}
pom.project {
version project.groupCmlWechatVersion//版本号 每次上传到maven仓库都需要更新版本号
artifactId 'DemoTestxunua'//jar包 aar包的名字
groupId project.groupId//所属的包
packaging project.packaging//上传何种类型
description '...'
}
}
}
}
对应的需要在project的builder.gradle文件中添加这几个参数(发现上面代码块的project.mavenUrl没,对应的就是project中的mavenUrl的参数,也是放在最底部)
subprojects {
ext {
compileSdkVersion = 29
buildToolsVersion = "29.0.3"
appMinSdkVersion = 26
targetSdkVersion = 29
//maven仓库配置
//地址
mavenUrl = "https://nexus.xxxx.com/repository/maven-releases/"
//帐号
mavenName = "admin"
//密码
mavenPsw = "admin"
groupId = "com.xunua.Demo"//在com.xunua.Demo文件夹下生成artifactId(这是上面第一个代码块中的属性)名字的jar包和aar包。
//生成aar包
packaging = "aar"
//核心库wechatSmallProgram 版本号
groupCmlWechatVersion = "1.0.0" //1.0.0 Module初始化完成 以后上传jar包就把这个版本号更新就行
}
}
二、上传jar包与aar包到Maven仓库
jar包与aar包的区别就是aar包更完整(会把资源文件也放在里面),而jar包则是只有项目main目录里面的内容(个人理解,具体到csdn内搜索jar包与aar的区别)
上传的话特别简单,通常改变一下上面代码块中的groupCmlWechatVersion属性,比如把1.0.0改成1.0.1修改好版本号之后,按照图下的步骤,点击uploadArchives啊,就会开始上传了
三、远程代理的配置。解决在AS中配置远程代理后Maven仓库上传jar包aar包仍然失败的问题(没遇到这种问题的这个模块可以不看,直接看第四部分)
找到这个文件(有没有发现有两个同名的,一个是项目内部的(局部的),另一个是全局的(Global Properties))
打开这个全局的文件gradle.properties(Global Properties),在最下面添加代码
127.0.0.1是你的代理ip地址,1080是端口号,都用一样的就好,记得全部配置好。
//如果不需要使用到远程代理那么一定要把下面这些代码注释掉
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=1080
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=1080
org.gradle.jvmargs=-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080 //这一行是给jvm配置远程代理 解决上传jar包失败问题
添加了下面的代码后 就不要在Android的setting里面去配置http代理了,直接选择No Proxy
ps:还有一种错误情况要注意,可能是服务器做了设置,文件太大会无法上传成功。这时候需要服务器端进行修改。
对上传到maven仓库文件的引用
比如上文中我们在com.xunua.Demo包下上传了DemoTestxunua的jar包和aar包,那么就要导入这个包。
在对应的builder.gradler文件中添加如下依赖(二选一)
implementation "com.xunua.Demo:DemoTestxunua:1.0.0@aar"//导入aar包
implementation "com.xunua.Demo:DemoTestxunua:1.0.0@sources"//导入jar包