nexus3 无法上传release与snapshot版本问题与解决方法

nexus3 无法上传release与snapshot版本问题与解决方法

说明:nexus的存储库分为3种型:

proxy: 代理类型,用来代理官方或者第三方的存储库。

hosted: 我们自己的存储库,我们自己上传的包就在这个存储库下面

group: 存储库组,类似于文件夹,包含一个或多个proxy及hosted类型的存储库。我们只需要在maven里配置它的url,就可以访问它包含的所有存储库

阿里云的公用仓库地址见官网: https://maven.aliyun.com/mvn/guide

1. 选择hosted类型的存储库上传

上传jar包时不能指定group的url,必须要指定hosted的url
在这里插入图片描述

2.检查存储库的部署策略:

release版建议选择Disable redeploy 表示同版本号不能重新部署,只能上传一次

snapshot版建议选择Allow redeploy 表示允许更新
在这里插入图片描述

3. 检查jar包版本号

release包的版本号不能以 SNAPSHOT结尾,否则会拒绝

snapshot包的版本号必须以SNAPSHOT结尾,否则也会被拒绝

4. 检查mavensettings.xml文件配置

上传jar必须要授权

<servers>
	<server>
        <id>maven-snapshots</id>
        <username>admin</username>
        <password>xxx</password>
    </server>
    <server>
        <id>maven-releases</id>
        <username>admin</username>
        <password>xxx</password>
    </server>
</servers>

说明: id要和上传时指定的存储库id对应,见后面的两种上传方式

5. 两种上传jar包方式

5.1 mavn指令上传

适合只有jar包的情况

# 上传快照版本
mvn deploy:deploy-file -DgroupId=com.test -DartifactId=tdd -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar  -Dfile=D:\tdd\tdd-1.0.0-SNAPSHOT.jar -Durl=http://192.168.10.30:8081/repository/maven-snapshot/ -DrepositoryId=maven-snapshot

# 上传发布版本
mvn deploy:deploy-file -DgroupId=com.test -DartifactId=tdd -Dversion=1.0.0 -Dpackaging=jar  -Dfile=D:\tdd\tdd-1.0.0.jar -Durl=http://192.168.10.30:8081/repository/maven-releases/ -DrepositoryId=maven-releases

# 参数说明
-DgroupId: 组织名
-DartifactId: 项目名
-Dversion: 版本号  快照版本要带 SNAPSHOT 后缀
-Dpackaging: 打包方式
-Dfile:本地文件路径
-Durl: hosted类型的存储库url
-DrepositoryId: 与maven的 settings.xml 文件里面配置的 <server>标签下的<id>相同。 见第4点

建议将jar复制到非本地仓库目录, 我之前遇到放在本地仓库的jar无法部署情况

5.2 maven项目上传jar

适合有pom文件的项目

pom.xml文件添加如下内容。也要注意id与第 4点配置的id相同

<distributionManagement>
	<repository>
		<id>maven-releases</id>
		<name>NexusReleases</name>
		<url>http://192.168.10.30:8081/repository/maven-releases/</url>
	</repository>
	<snapshotRepository>
		<id>maven-snapshots</id>
		<name>NexusSnapshots</name>
		<url>http://192.168.10.30:8081/repository/maven-snapshot/</url>
	</snapshotRepository>
</distributionManagement>

然后:

mvn deploy

6. maven启用快照版本,配置更新策略

<!-- 第4点介绍的服务器认证配置 -->
<servers>
	<server>
        <id>maven-snapshots</id>
        <username>admin</username>
        <password>xxx</password>
    </server>
    <server>
        <id>maven-releases</id>
        <username>admin</username>
        <password>xxx</password>
    </server>
</servers>

<!-- 我配置的镜像,使用group类型的仓库 -->
<mirrors>
    <mirror>
        <id>maven-public</id>
        <name>nexus</name>
        <url>http://192.168.10.30:8081/repository/maven-public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

<profiles>
    <profile>
        <id>allow-snapshots</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <id>maven-public</id>
                <url>http://192.168.10.30:8081/repository/maven-public/</url>
                <!-- 启用发布版本 -->
                <releases>
                    <enabled>true</enabled>
                </releases>
                <!-- 启用快照版本 -->
                <snapshots>
                    <enabled>true</enabled>
                    <!-- 
						更新策略 
						always: 每次使用maven指令构建项目都会去nexus下载最新的快照版本
						daily: 默认值, 每天更新一次
						interval:X, X表示更新的时间间隔,单位分钟
						never: 不更新
   					-->
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
        </repositories>
    </profile>
</profiles>
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值