Maven + Nexus 私有仓库搭建 + 项目推送 + 其他项目拉取(简记)
序
2022年是比较忙碌的一年,耽误了很多博客积累,这一年开始看的比写得多。后面也发现像原来一样的去写下来的成本太高。后面开始只做一些简记。即减少书写成本,也能巩固知识,提炼精华。
一 、Nexus下载
下载地址:
Nexus
我的是nexus-3.49.0-02版本
二、 Nexus安装
- 解压
tar -zxvf nexus-3.49.0-02-unix.tar.gz
- 启动
进入解压后的文件夹,进入bin包,找到启动项,命令
./nexus start
查看状态
./nexus status
如下显示就启动了
启动后,端口默认8081
然后通过访问该端口就可以进入了
http://xxx.xxx.xxx.xxx/8081 xxx部分代表ip地址
- 获取密码
由于我那个版本获取不到管理员密码,所以通过网上修改密码方式找回密码。
停止服务
./nexus stop
找到安装包下的nexus-orient-console.jar并启动
java -jar ./lib/support/nexus-orient-console.jar
连接后会显示如下图所示
然后在这里面连接数据库
connect plocal:/www/nexus/sonatype-work/nexus3/db/security admin admin 注意
注意,我这里写的绝对路径,主要目的连接nexus启动后生成的sonatype-work文件夹中的数据库。路径以自己服务器上的路径为准。
连接成功后显示下图:
然后,在这里修改密码admin123
update user SET password="$shiro1$SHA-512$1024$NE+wqQq/TmjZMvfI7ENh/g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin"
最后启动nexus
./nexus start
三、 项目推送
项目写好后进行maven的pom配置
项目,其中,RELEASE后缀代表发行版<groupId>com.xxx</groupId><artifactId>xxxx</artifactId><version>1.0.0-RELEASE</version><packaging>jar</packaging>仓库推送地址, url是nexus仓库中的地址<distributionManagement><snapshotRepository><id>my-snapshots</id><name>My snapshots</name><url>http://xxx.xxx.xxx.xxx:8081/repository/maven-snapshots/</url></snapshotRepository><repository><id>my-releases</id><name>My releases</name><url>http://xxx.xxx.xxx.xxx:8081/repository/maven-releases/</url></repository></distributionManagement>
然后配置maven的settings.xml,将私有仓库的账号密码配置进去。
这里的id和上面仓库推送的id要匹配,连接时才能找到账号密码。
<server><id>my-releases</id><username>admin</username><password>admin123</password></server><server><id>my-snapshots</id><username>admin</username><password>admin123</password></server>
如果出现了401
出现了401是连接账号密码错误,要么真错了,要么settings.xml没配上。我也出现过,发现是配到settings.xml的注释里面去了,要仔细。
最后执行推送命令
mvn clean deploy
四、 其他项目引用
maven的pom配置仓库地址
<repository><id>my-public</id><url>http://xxx.xxx.xxx.xxx:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository>
然后就可以引入依赖了
<dependency><groupId>com.xxx</groupId><artifactId>xxxx</artifactId><version>1.0.0-RELEASE</version></dependency>