使用nexus搭建maven私服仓库这块和Android并没有必然的联系,这里是我的应用场景是Android。
我的Android项目中使用到了多个封装的module,这个module在多个项目中都有使用。这就造成了修改了某处的bug后,需要把每个引用的项目都修改一遍。非常的麻烦,浪费了大量的时间,而且随着项目数量的增多维护起来难度会越来越高。
我开始考虑了两个方案。
一个是使用Jitpack的把module打成release包,发布一下,通过依赖的形式使用。但是module中使用了第三方的aar包,导致打包失败。而且Jitpack上面是开源的,私有仓库的话需要收费,且价格不菲。
另一个方案是使用maven仓库,同样的私有仓库需要自己搭建,但是免费,只需要一个内网服务器即可。
本文就是建立在使用nexus搭建私有maven仓库的基础上。本文为第一篇,maven私服的搭建。
安装nexus服务
说到搭建,其实也没啥好说的。网上的教程一大堆。然后,我只是说一下我当时遇到的问题。我使用的OSS 3.34.0-01的windows版本。下载地址在这:nexus3.34.0+maven3.83
下载完后,直接解压到你选定的文件夹即可。之后,打开cmd窗口,进入F:\nexus\nexus-3.34.0-01-win64\nexus-3.34.0-01\bin(你的解压路径下的nexus文件夹)路径下,输入命令:nexus /run 即可运行。
最后出现started..什么什么的.....就可以了,图片仅供参考。
此时你 打开http://localhost:8081/ 就可以打开nexus的控制面板了。
多啰嗦一句,这个cmd控制台关掉后服务就会关闭。我们可以把nexus服务安装一下,使其可以自己启动,不需要每次都手动启动了。同样的打开cmd然后进入你解压的那个nexus的文件夹,输入
回车就可以安装了,之后nexus服务会自己启动不需要再次手动启动了。
到此安装结束。
登录nexus
网上很多文章的默认用户名密码分别是admin和admin123,但是我这个不是。用户名是admin,而密码在我们的解压包中路径带work的包下
里面有一长串字符沾出来就是密码。
登录后新建一个放发布包的仓库。
注意此处选择Allow redeploy
然后,我们配置一下本地的maven仓库。
如果你没有下载安装,那我这边提供一个下载的。nexus3.34+maven3.83
maven的安装其实就是解压后,配置一下系统的环境变量。
新建变量MAVEN_HOME = E:\Tools\Maven\apache-maven-3.8.1(以自己的安装路径为准)
编辑变量Path,添加变量值%MAVEN_HOME%\bin
安装成功的标志如下:
cmd 中输入 mvn -version 出现版本信息。
安装完成后,进入F:\Maven\apache-maven-3.8.3\conf 下修改setting.xml文件
配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>F:\Maven\maven_repository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<server>
<!--本机nexus仓库名称-->
<id>3rd</id>
<!--本机nexus仓库用户名-->
<username>admin</username>
<!--本机nexus仓库密码-->
<password>admin123</password>
</server>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<!-- 镜像 maven 库的路径 -->
<mirror>
<id>3rd</id>
<url>http://localhost:8081/repository/3rd/</url>
<mirrorOf>*</mirrorOf>
</mirror>
<mirror>
<id>maven-default-http-blocker</id>
<mirrorOf>external:http:*</mirrorOf>
<name>Pseudo repository to mirror external repositories initially using HTTP.</name>
<url>http://0.0.0.0/</url>
<blocked>true</blocked>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexusProfile</id>
<repositories>
<repository>
<id>3rd</id>
<name>3rd Repository</name>
<url>http://localhost:8081/repository/3rd/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<!--激活 -->
<activeProfiles>
<activeProfile>nexusProfile</activeProfile>
</activeProfiles>
</settings>
以上是我本地的文件。
到此配置maven结束。此时本地maven和本地nexus服务已经建立连接,你可以开始准备打包上传你的module了。
参考:更详细的教程