利用Android studio上传module的aar文件和jar文件到maven仓库,以及远程代理的配置(解决上传jar包到远程代理的maven仓库失败问题),和对上传后maven仓库文件的引用

一、配置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啊,就会开始上传了利用Android studio上传module的aar文件和jar文件到maven仓库,以及远程代理的配置(解决上传jar包到远程代理的maven仓库失败问题),和对上传后maven仓库文件的引用_第1张图片

三、远程代理的配置。解决在AS中配置远程代理后Maven仓库上传jar包aar包仍然失败的问题(没遇到这种问题的这个模块可以不看,直接看第四部分)

找到这个文件(有没有发现有两个同名的,一个是项目内部的(局部的),另一个是全局的(Global Properties))
利用Android studio上传module的aar文件和jar文件到maven仓库,以及远程代理的配置(解决上传jar包到远程代理的maven仓库失败问题),和对上传后maven仓库文件的引用_第2张图片
打开这个全局的文件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
利用Android studio上传module的aar文件和jar文件到maven仓库,以及远程代理的配置(解决上传jar包到远程代理的maven仓库失败问题),和对上传后maven仓库文件的引用_第3张图片
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包

你可能感兴趣的:(Android)