首页 > 学院 > 开发设计 > 正文

提交Library到私有Maven仓库

2019-11-07 23:38:47
字体:
来源:转载
供稿:网友

前言

提到Maven,java开发者再熟悉不过了,它是一款依赖管理、用于构建的工具。在Android Studio里面,gradle支持jcenter()、mavenCentral() ,新版本的Android Studio默认使用jcenter()。AS团队从对开发者的友好程度上选择了jcenter。然而,很多中大型企业在内部搭建了Maven的私有仓库,为企业内部的开发人员提供便捷的包管理服务。 jcenter:https://bintray.com/ Sonatype MavenCentral:https://issues.sonatype.org/secure/Dashboard.jspa 可能是因为国内墙的原因,尝试在Jcenter上发布包,未果,总体上体验还不是那么尽如人意。 在AS里面,打开PRoject的build.gradle,可以看到默认使用的是jcenter如下:

buildscript { repositories { jcenter() }}allprojects { repositories { jcenter() }}

配置Library

私有Maven地址:https://maven.bingosoft.net 创建一个Library工程,例如bingosso-client。我们的目标是将该工程开发出的包提交到Maven。

接下来,打开Module对应的build.gradle文件,增加如下配置:

apply plugin: 'maven'uploadArchives { repositories { mavenDeployer { snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) { authentication(userName:MAVEN_USERNAME, passWord: MAVEN_PASSWORD) } repository(url: MAVEN_REPO_RELEASE_URL) { authentication(userName:MAVEN_USERNAME, password: MAVEN_PASSWORD) } pom.project { version '0.1.0' artifactId 'bingosso-client' groupId 'com.bingo.sso.android' packaging 'aar' description 'bingosso for android platform' } } }}

从上面的配置,可以看出,build.gradle是通过uploadArchives这个节点的配置来对接Maven仓库的。上面用到的一些变量配置在gradle.properties里面:

#Maven仓库的URLMAVEN_REPO_RELEASE_URL=https://maven.bingosoft.net/content/repositories/releases/MAVEN_REPO_SNAPSHOT_URL=https://maven.bingosoft.net/content/repositories/snapshots/#Maven用户名MAVEN_USERNAME=xxxx#登录nexus oss的密码MAVEN_PASSWORD=xxxx123

关于snapshot和release

Maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)。在Android Studio中,无需直接面对pom文件,在AS中是自动生成的,只需要设置上面的version即可(例如1.2.0-SNAPSHOT)

执行uploadArchives

打开Android Studio左边的Gradle选项卡,双击uploadArchives即可:

之后会看到如下现象:

上传过程中遇到的问题

在执行上面的过程中可能会遇到问题,例如SSL的安全问题等。已经记录在此:http://blog.csdn.net/seafishyls/article/details/56846225

Gradle使用私有仓库的包

打开需要引用该仓库的Project对应的build.gradle,如下设置:

allprojects { repositories { jcenter() maven{ url 'https://maven.bingosoft.net/content/repositories/releases/' } }}

再打开Module对应的build.gradle,增加如下配置:

dependencies { compile 'com.bingo.sso.android:bingosso-client:0.1.0'}

整个过程还算比较顺利,有不对的地方欢迎指正!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表