提到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() }}私有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=xxxx123Maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)。在Android Studio中,无需直接面对pom文件,在AS中是自动生成的,只需要设置上面的version即可(例如1.2.0-SNAPSHOT)
打开Android Studio左边的Gradle选项卡,双击uploadArchives即可:
之后会看到如下现象:
在执行上面的过程中可能会遇到问题,例如SSL的安全问题等。已经记录在此:http://blog.csdn.net/seafishyls/article/details/56846225
打开需要引用该仓库的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'}整个过程还算比较顺利,有不对的地方欢迎指正!
新闻热点
疑难解答