maven deploy 的那些事

玩过 maven 私服的都知道这个玩意,在本地的 pom 文件里做好配置,执行下 maven 的 deploy 即可把新的 jar 部署到私服上。

下面说说该怎么配置

<!--发布-->
<distributionManagement>
    <repository>
        <id>private-nexus-library-releases</id>
        <name>private-nexus-library-releases</name>
        <url>http://host:port/maven-web/content/repositories/releases/</url>
    </repository>

    <snapshotRepository>
        <id>private-nexus-library-snapshots</id>
        <name>private-nexus-library-snapshots</name>
        <url>http://host:port/maven-web/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>
然后在maven的 conf/settings.xml 配置
<servers>
	<server>  
		<id>private-nexus-library-releases</id>  
		<username>username</username>  
		<password>password</password>  
	</server>
	<server>
		<id>private-nexus-library-snapshots</id>
		<username>username</username>  
		<password>password</password>  
	</server>
</servers>
注意 server 的 id 要与 repository 的 id 保持一致。

最后,有一个问题必须注意,与这个 maven deploy 没直接关系,但是配置不恰当会导致 deploy 失败。

就是每个 module 的 version ,一般是继承 parent 的version ,比如你可能会这样

<parent>
    <groupId>module.some</groupId>
    <artifactId>module_parent</artifactId>
    <version>${parent.version}</version>
</parent>
这里哪里不对吗?当然是对的,而且 version 使用变量的好处是以后方便统一修改。但是这样发布到 maven 私服上后,你会发现 maven 会试图下载 module_parent 的 ${parent.version} 的 jar ,当然是不存在的。但是,已经指定了 parent.version 的值了,为什么没有解析?原因是 deploy 的过程中,parent 标签里的变量是不会解析的,必须是一个常量
<parent>
    <groupId>module.some</groupId>
    <artifactId>module_parent</artifactId>
    <version>1.0.0</version>
</parent>

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值