我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
自动打包+上传
此方式包含打包+上传两种功能,是自动集成一体的,不能单独拆分。
1、在library工程的build.gradle里面,添加如下代码:
apply from: 'maven_upload.gradle'
2、在library工程下面新建gradle.properties(如果没有的话),添加如下代码:
|
注:
(1) Could not find metadata your group id:your artifact id/maven-metadata.xml in remote (http://your maven ip and port/repository/maven-releases/)
如果有这样的提示,可以暂时不予理会。
(2) MAVEN_VERSION:如果是SNAPSHOT版本,需要在版本号后面添加"-SNAPSHOT"。
MAVEN_RELEASE_URL和MAVEN_SNAPSHOT_URL分别指向maven的release服务器和maven的snapshot服务器。
MAVEN_GROUP_ID和MAVEN_ARTIFACT_ID根据项目实际情况来设定。
3、在library工程下面新建maven_upload.gradle文件,内容如下:
|
注:
(1) 上传到maven的RELEASE服务器按理来说需要用到签名机制,android studio自带的签名是gpg机制;
然而这个涉及到需要将公钥上传到maven服务器的事宜。
(2)组件上传的时候,注意要根据Build Variants的设置,只生成一个aar或jar文件,不要生成多个,比如带有debug或release标记的版本。切记!
单独上传
1、安装Maven客户端
具体安装方法不赘述,自行参考文章指引;
2、配置 maven上传脚本
在conf/settings.xml文件里,编辑上服务器的账号、密码信息,另外还有一个id,对应上传脚本中的-DrepositoryId字段。
示例:
<server>
<id>nexus-snapshots</id>
<username>账号</username>
<password>密码</password>
</server>
2、利用maven命令,上传指定文件
命令参考格式:
mvn deploy:deploy-file -e -Dfile=F:\a.aar -DgroupId=your group id -DartifactId=your artifact id -Dversion=0.0.1-SNAPSHOT -Durl=http://xxx/maven-snapshots/ -Dpackaging=aar -DrepositoryId=nexus-snapshots
单独上传有一个好处就是可以只上传现有的jar包或者aar包,无需工程及时编译重新打包。
有时候这个包是第三方提供的,如果可以通过maven管理起来。