发布包到Nexus私服

Nexus是一个成熟的Maven仓库管理服务,通过Nexus我们可以管理项目的依赖、发布自己的Maven构件,Nexus也能缓存公共仓库中的依赖,从而加快构建速度。这篇笔记我们介绍如何将工程发布到Nexus私服。有关Nexus搭建可以参考软件工程/软件开发相关工具/Nexus-私有包管理仓库/NexusOSS搭建章节。

Maven配置

将工程发布到Nexus时,我们需要配置两个地方,一个是Nexus私服的访问权限,这通常包括一组用户名和密码,另一个是发布到哪个仓库。一般来说,我们通常将私服仓库的所有用户名和密码配置在本地仓库的~/.m2/settings.xml文件内,而软件包发布的仓库则在pom.xml中指定。下面是一个例子配置,我们配置的软件包发布到nexus-snapshotsnexus-releases仓库,仓库对应的用户名和密码在settings.xml中指定。

~/.m2/settings.xml

<server>
    <id>nexus-releases</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
<server>
    <id>nexus-snapshots</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
</servers>

pom.xml

<distributionManagement>
  <repository>
    <id>nexus-releases</id>
    <name>Nexus Release Repository</name>
    <url>http://192.168.43.164:8090/nexus/content/repositories/releases/</url>
  </repository>
  <snapshotRepository>
    <id>nexus-snapshots</id>
    <name>Nexus snapshots Repository</name>
    <url>http://192.168.43.164:8090/nexus/content/repositories/snapshots/</url>
  </snapshotRepository>
</distributionManagement>

有关Maven仓库类型的说明具体见软件工程/软件开发相关工具/Nexus-私有包管理仓库/Maven仓库类型章节,阅读本篇前应先复习Nexus部署相关知识。

发布软件包

在工程目录中,我们执行以下命令发布软件包。

mvn clean deploy

Maven会根据pom.xml中的版本号自动判断是发布到Release仓库还是Snapshot仓库。如果版本号以-SNAPSHOT结尾会发布到Snapshot仓库,否则发布到Release仓库。

多模块项目跳过指定模块

在多模块项目中,有时我们可能希望跳过某些模块的发布,例如一个JavaWeb工程构建的War包,它仅用于部署不会被其它工程引用。这可以通过在对应模块的pom.xml中配置maven.deploy.skip属性来实现。

<properties>
    <maven.deploy.skip>true</maven.deploy.skip>
</properties>

这个配置会告诉Maven在部署时跳过该模块。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。