推荐阅读#
settings.xml 私服配置#
下面是一个 Nexus 私服的 settings.xml 配置模板。实际使用时需替换为自己的服务器地址和凭据:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>nexus-snapshot</id>
<username>${NEXUS_USER}</username>
<password>${NEXUS_PASSWORD}</password>
</server>
<server>
<id>nexus-release</id>
<username>${NEXUS_USER}</username>
<password>${NEXUS_PASSWORD}</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus-snapshot</id>
<mirrorOf>*</mirrorOf>
<url>https://your-nexus-domain/repository/maven-public/</url>
</mirror>
<mirror>
<id>nexus-release</id>
<mirrorOf>*</mirrorOf>
<url>https://your-nexus-domain/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<name>nexus</name>
<url>https://your-nexus-domain/repository/maven-public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>nexus</name>
<url>https://your-nexus-domain/repository/maven-public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
提示:建议通过环境变量或 Maven Master Password 加密机制管理凭据,避免明文写入配置文件。
使用 release:prepare 构建指定版本#
Maven Release Plugin 在执行 prepare 时会基于当前分支创建一个 release 分支并 push 到远端。如果不想自动 push(比如与团队的分支管理策略冲突),可以加 -DpushChanges=false。
构建指定版本号的 release 制品:
mvn -B release:prepare \
-DtagNameFormat=@{project.version} \
-DreleaseVersion=1.0.4 \
-DpushChanges=false \
-Dmaven.test.skip=true \
-T $(nproc)
使用 release:perform 发布至私服#
构建完成后,执行 perform 将制品上传到 Nexus release 仓库:
mvn release:perform \
-Darguments='-Dmaven.javadoc.skip=true' \
-Dmaven.test.skip=true \
-DlocalCheckout=true \
-T $(nproc)
参考文档#
https://maven.apache.org/maven-release/maven-release-plugin/plugin-info.html
