Android项目使用私有maven仓库配置
2017-12-07 13:37
501 查看
最近写一个android的aar包,因为存在依赖第三方包的问题,所以得使用maven仓库。但是又不能提交项目到公共maven仓库上去,所以只得自己搭建一个maven仓库,于是上网一查,好家伙,基本都是推荐nexus来搭建私有仓库的。
本文的目的是说清楚以下三点内容
那么这就来说说吧
首先去官网下载一个nexus版本吧,我下载的版本是nexus-2.14.5-02的版本,不同版本的部署可能有所差异,但是网上都能查的到,也不难,这里就以这个nexus-2.14.5-02版本为例来进行说明。
将下载的nexus包解压到本地目录,我这里是
然后这个目录下有两个目录一个是nexus-2.14.5-02,另一个是sonatype-work,点击进入nexus-2.14.5-02目录并在terminal中cd到该目录的bin目录
管理员模式下的terminal中运行
然后便可以打开nexus服务
在浏览器中输入地址
如果能够出来下面页面则代表了nexus服务正常启动
点击左侧的Repositories可以看到很多仓库,比如Releases以及Snapshots,这里就不举例创建新的仓库了,下面小节就以部署aar到Releases这个仓库(默认账号密码为admin/admin123)为例来说明,如何部署。
对maven仓库有所了解的童鞋应该知道配置是怎么回事吧,但是肯定还是会对LOCAL_REPO_URL、GROUP_ID、ARTIFACTID以及LIBRARY_VERSION这几个变脸比较疑惑,毕竟不知道在什么地方配置的。
我们在根项目的gradle.properties中添加
在aar包对应类库的gradle.properties(没有该文件的话,就自己创建一个)中添加
于是乎也就知道这几个变量是什么回事了
然后在gradle中执行uploadArchives命令,便可顺利的讲aar打包到对应的maven仓库中,值得一提的是,我之前使用过一些其它的uploadArchives命令都是各种失败,后面找文档,各种都说要配置maven的setting.xml文件,配置了也没有用,知道找到这里的方式才成功将aar打包到了maven仓库。
首先在根目录下build.gradle中添加maven仓库,作为我么获取aar依赖包的仓库
然后在对应项目的build.gradle文档中添加对对应包的依赖
编译项目后,发现aar成功依赖进来,大功告成。
后面测试发现貌似并么有大功告成,哎。。。部署在我电脑上的repositories仓库其它局域网的电脑无法访问,我创建一个pom.xml文件引入aar的maven仓库路径,执行mvn package时发现提示下载aar包是unauthoried的错误提示,说明还是存在权限问题,于是在maven的setting.xml文件中去参考让Maven项目使用Nexus作为远程仓库的settings.xml配置这篇文章作了配置,发现再次运行mvn package命令不再提示无权限的问题,那么就肯定了是权限问题,但是配置setting.xml文件对gradle编译无效啊,所以得在gradle中进行权限配置,于是乎找了好久,总算找到了下面的配置
当然使用时,可以把username和password的值放到gradle.properties文件中去,到这里才算是大功告成。
2、使用Nexus搭建Maven代理仓库
3、创建maven私有仓库及其在Android Gradle 中的使用
4、让Maven项目使用Nexus作为远程仓库的settings.xml配置
5、Java Gradle入门指南之依赖管理(添加依赖、仓库、版本冲突)
本文的目的是说清楚以下三点内容
1、nexus搭建私有仓库 2、gradle task命令部署aar到私有仓库 3、在gradle项目中添加aar的依赖
那么这就来说说吧
1、nexus搭建私有仓库
关于nexus搭建私有仓库,实际上非常简单,网上的教程也是一大堆,这里简单介绍下。首先去官网下载一个nexus版本吧,我下载的版本是nexus-2.14.5-02的版本,不同版本的部署可能有所差异,但是网上都能查的到,也不难,这里就以这个nexus-2.14.5-02版本为例来进行说明。
将下载的nexus包解压到本地目录,我这里是
D:\Program Files\nexus-2.14.5-02
然后这个目录下有两个目录一个是nexus-2.14.5-02,另一个是sonatype-work,点击进入nexus-2.14.5-02目录并在terminal中cd到该目录的bin目录
D:\Program Files\nexus-2.14.5-02\nexus-2.14.5-02\bin
管理员模式下的terminal中运行
nexus install nexus start
然后便可以打开nexus服务
在浏览器中输入地址
http://localhost:8081/nexus
如果能够出来下面页面则代表了nexus服务正常启动
点击左侧的Repositories可以看到很多仓库,比如Releases以及Snapshots,这里就不举例创建新的仓库了,下面小节就以部署aar到Releases这个仓库(默认账号密码为admin/admin123)为例来说明,如何部署。
2、部署aar到maven仓库
到生成aar包的对应类库的build.gradle中添加下面的代码apply plugin: 'maven' uploadArchives{ repositories{ mavenDeployer{ repository(url: LOCAL_REPO_URL) { authentication(userName: "admin", password: "admin123") } pom.groupId = GROUP_ID pom.artifactId = ARTIFACTID pom.version = LIBRARY_VERSION pom.project { licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } } } } }
对maven仓库有所了解的童鞋应该知道配置是怎么回事吧,但是肯定还是会对LOCAL_REPO_URL、GROUP_ID、ARTIFACTID以及LIBRARY_VERSION这几个变脸比较疑惑,毕竟不知道在什么地方配置的。
我们在根项目的gradle.properties中添加
#包信息 GROUP_ID = com.yoryky.mavendemo
在aar包对应类库的gradle.properties(没有该文件的话,就自己创建一个)中添加
#包信息 ARTIFACTID = androidLib LIBRARY_VERSION = 1.0.0 LOCAL_REPO_URL=http://localhost:8081/nexus/content/repositories/releases/
于是乎也就知道这几个变量是什么回事了
然后在gradle中执行uploadArchives命令,便可顺利的讲aar打包到对应的maven仓库中,值得一提的是,我之前使用过一些其它的uploadArchives命令都是各种失败,后面找文档,各种都说要配置maven的setting.xml文件,配置了也没有用,知道找到这里的方式才成功将aar打包到了maven仓库。
3、在gradle项目中添加aar的依赖
在第二小节,我们将aar提交到了maven仓库,然后这一小节我们就来添加对该aar包的依赖首先在根目录下build.gradle中添加maven仓库,作为我么获取aar依赖包的仓库
allprojects { repositories { jcenter() maven{ //私有maven仓库路径 url 'http://localhost:8081/nexus/content/repositories/releases/' } } }
然后在对应项目的build.gradle文档中添加对对应包的依赖
编译项目后,发现aar成功依赖进来,大功告成。
后面测试发现貌似并么有大功告成,哎。。。部署在我电脑上的repositories仓库其它局域网的电脑无法访问,我创建一个pom.xml文件引入aar的maven仓库路径,执行mvn package时发现提示下载aar包是unauthoried的错误提示,说明还是存在权限问题,于是在maven的setting.xml文件中去参考让Maven项目使用Nexus作为远程仓库的settings.xml配置这篇文章作了配置,发现再次运行mvn package命令不再提示无权限的问题,那么就肯定了是权限问题,但是配置setting.xml文件对gradle编译无效啊,所以得在gradle中进行权限配置,于是乎找了好久,总算找到了下面的配置
当然使用时,可以把username和password的值放到gradle.properties文件中去,到这里才算是大功告成。
4、参考文献
1、Nexus搭建Maven私有仓库2、使用Nexus搭建Maven代理仓库
3、创建maven私有仓库及其在Android Gradle 中的使用
4、让Maven项目使用Nexus作为远程仓库的settings.xml配置
5、Java Gradle入门指南之依赖管理(添加依赖、仓库、版本冲突)
相关文章推荐
- Maven的使用,Nexus建立本地仓库以及Eclipse导入Maven项目(三): 配置篇
- Maven配置项目依赖使用本地仓库的方法汇总
- 使用Nexus配置Maven私有仓库
- Maven配置项目依赖使用本地仓库的方法汇总
- 使用nexus配置maven私有仓库
- 使用nexus3 配置maven的私有仓库
- 让Maven项目使用Nexus作为远程仓库的settings.xml配置
- IDEA初使用---检出maven项目,私服仓库配置,spring配置文件映射
- 配置私有maven服务器管理android项目依赖
- 使用Nexus配置Maven私有仓库
- Android Gradle 中的使用maven私有仓库
- 在eclipse中使用maven配置与tomcat集成的web项目
- 在Android项目中使用AndroidAnnotations(配置框架,显示Hello World!)
- 使用ant及IDE配置文件进行Android项目初步的标准化,规范化构建
- 使用eclipse和maven一步一步配置web项目
- maven项目打包发布到私有仓库
- 在Maven项目中使用Android Support Library
- 修改net-paoding项目的build.gradle文件,使用gradle install发布到本地maven仓库
- 使用eclipse 、tomcat及maven发布项目的相关配置作用
- Maven本地仓库nexus配置与使用