Nexus私服——(三) 在项目实战中使用私服仓库

一、配置认证信息

在 Maven 的conf目录settings.xml 中添加 Nexus 认证信息(servers 节点下):

 <!--配置访问私服的用户名和密码 -->
	   <server>
            <id>releases</id><!--正式库  发行-->
			<username>admin</username>
			<password>admin123</password>
		</server>
		<server>

			<id>snapshots</id><!--测试库 快照-->
			<username>admin</username>
			<password>admin123</password>
			</server>
			
	    <server>
			<id>thirdparty</id>
			<username>admin</username>
			<password>admin123</password>
		</server>

1、Snapshots 与 Releases 的区别

  • nexus-releases: 用于发布 Release 版本
  • nexus-snapshots: 用于发布 Snapshot 版本(快照版)

Release 版本与 Snapshot 定义如下:

Release: 1.0.0/1.0.0-RELEASE
Snapshot: 1.0.0-SNAPSHOT
  • 在项目 pom.xml 中设置的版本号添加 SNAPSHOT 标识的都会发布为 SNAPSHOT 版本,没有 SNAPSHOT 标识的都会发布为 RELEASE 版本。
  • SNAPSHOT 版本会自动加一个时间作为标识,如:1.0.0-SNAPSHOT 发布后为变成 1.0.0-SNAPSHOT-20180522.123456-1.jar

二、配置自动化部署(自动传jar至私服)

1、添加POM依赖

在 pom.xml 中添加如下代码:

<distributionManagement>  
  <repository>  
    <id>nexus-releases</id>  
    <name>Nexus Release Repository</name>  
    <url>http://私服仓库IP:8081/repository/maven-releases/</url>  
  </repository>  
  <snapshotRepository>  
    <id>nexus-snapshots</id>  
    <name>Nexus Snapshot Repository</name>  
    <url>http://私服仓库IP:8081/repository/maven-snapshots/</url>  
  </snapshotRepository>  
</distributionManagement> 

2、拉取快照依赖

在idea中设置maven可以拉取快照版依赖

这样在团队协同开发时,或者多个公司联合开发,为了不让公共模块依赖的源码因开源而造成源码泄露,就可以把公共模块的代码上传至私服中,团队成员及时拉取就OK了。

三、部署至仓库

命令将项目依赖jar包部署只私服中

mvn deploy

 为了不让测试文件执行,选择跳过测试文件

mvn deploy -Dmaven.test.skip=true

在Nexus私服中就可以看到jar包依赖

snapshots是一个快照版(测试版),有时会发行很多次,但是Nexus私服中的版本号已经确定,难道就不能上传了?

当然不是,Nexus私服会根据时间生成时间戳+上传的次数 生成第二个版本,继续保留第一个。

继续第二次部署上传

mvn deploy -Dmaven.test.skip=true

这时就会生成第二个版本

 

四、上传第三方 JAR 包

Nexus 3.0 不支持页面上传,可使用 maven 命令:

以谷歌的 com.google.code.kaptcha jar包为例,谷歌的jar包需要翻墙,所有必须先上传至私服中,才能成功拉取。

mvn deploy:deploy-file 
   #组织名
  -DgroupId=com.google.code.kaptcha
   #jar包名
  -DartifactId=kaptcha 
   # 版本号
  -Dversion=2.3.2
   #文件类型
  -Dpackaging=jar 
   #文件地址
  -Dfile=D:\kaptcha-2.3.2.jar 
   #上传目的地
  -Durl=http://192.168.153.142:8081/repository/maven-releases/
   #settings配置文件中releases对应的ID
  -DrepositoryId=nexus-releases

为了避免中文注释出现影响去掉注释

mvn deploy:deploy-file 
  -DgroupId=com.google.code.kaptcha
  -DartifactId=kaptcha 
  -Dversion=2.3.2
  -Dpackaging=jar 
  -Dfile=D:\kaptcha-2.3.2.jar 
  -Durl=http://192.168.153.142:8081/repository/maven-releases/
  -DrepositoryId=nexus-releases

打开CMD命令行工具或者idea终端将以上指令改为一行,复制进去,回车执行

可以看到构建成功

打开Nexus私服便可看到上传的Jar包。

 

五、配置代理仓库

maven寻找Jar包的顺序:

在中央仓库找到对应的Jar包以后下载存放顺序:

先存到私服仓库,项目再从私服中下载,这样拉取Jar的效率就会大大提升,并且,一次下载永久存放。可复用

<!--配置代理仓库 指定私服位置下载依赖-->
    <repositories>
        <repository>
            <id>nexus</id>
            <name>Nexus Repository</name>
            <url>http://192.168.153.142:8081/repository/maven-public/</url>
            <!--是否允许依赖快照版-->
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <!--是否允许依赖发行版-->
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <!--插件仓库-->
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>Nexus Plugin Repository</name>
            <url>http://192.168.153.142:8081/repository/maven-public/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

删掉原来的Jar包

重新刷新依赖

依赖重新被拉取

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真香号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值