maven—多模块项目 利用Maven插件修改工程版本号
阅读数:292 评论数:0
跳转到新版页面分类
应用软件
正文
方法一 、versions-maven-plugin
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.7</version>
</plugin>
</plugins>
</build>
可以设置整个项目的版本号,在你需要设置新版本号,可以全局更新项目版本号。一般开发环境就设置成SNAPHSHOT版本,测试测完之后没问题设置成Release版。
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT //更新整个项目版本
注:若是如果子模块与父模块本来就不一样了, 先运行mvn -N versions:update-child-modules
再更新父工程版本
2、把子模块的版本更新成parent工程的版本号
mvn -N versions:update-child-modules //更新所有的子模块继承的父模块版本号
执行后maven将会生成pom.xml
的一个备份:pom.xml.versionsBackup
3、提交
mvn versions:commit
确认升级版本无问题后,执行mvn versions:commit 确认升级,去掉备份的pom.xml.versionsBackup
4、回滚
mvn versions:revert
若是上面操作出现问题,可以考虑设置回滚mvn versions:revert
在重新设置。
方法二、 mvn-release-plugin
此插件可用于构建release版本项目,实现自动打tag、递增版本号、分发release版本jar包至仓库。
<!--git 远程仓库配置-->
<scm>
<connection>scm:git:http://项目git地址</connection>
<url>项目git地址(不加'.git后缀')</url>
<developerConnection>scm:项目git地址</developerConnection>
</scm>
<!--构建配置-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
</plugins>
</build>
<!--分发配置-->
<distributionManagement>
<repository>
<id>deploymentRepo</id>
<name>releases</name>
<url>http://somehost/repository/maven-releases/</url>
<uniqueVersion>true</uniqueVersion>
</repository>
<snapshotRepository>
<id>deploymentRepo</id>
<name>snapshots</name>
<url>http://somehost/repository/maven-snapshots/</url>
<uniqueVersion>true</uniqueVersion>
</snapshotRepository>
</distributionManagement>
1、在父pom安装插件
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<!--官方文档 https://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html-->
<!-- 是否允许带时间戳的 SNAPSHOT 依赖项。 默认false-->
<allowTimestampedSnapshots>true</allowTimestampedSnapshots>
<!--是否为子版本分配父亲版本号,默认false-->
<autoVersionSubmodules>true</autoVersionSubmodules>
<!--release:perform中参数 https://maven.apache.org/maven-release/maven-release-plugin/perform-mojo.html-->
<!--在执行mvn release:perform时默认会生成api文档,如果默写注释不符合规范的话会造成构建失败,可以加参数-DuseReleaseProfile=false取消构建api文档,或则需要根据规范书写注释。-->
<useReleaseProfile>false</useReleaseProfile>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
2、指定升级的版本
mvn release:update-versions -D-DautoVersionSubmodules=false -DdevelopmentVersion=1.0.4-SNAPSHOT
其版本号只能以-SNAPSHOT结尾,命令执行之后,所有的版本号都变成了1.0.4-SNAPSHOT,不过有人hack了代码,在release:update-versions中增加了一个releaseVersion参数,可以设定正式版的版本号,
3、发布
deploy snapshot版本到私服
发布所有模块, 在父工程下执行
发布所有模块, 在父工程下执行
mvn clean deploy -Dmaven.test.skip=true
发布单独子模块,及其依赖的子模块
mvn clean package deploy -pl xxx-xxx-? -am -Dmaven.test.skip=true -f pom.xml
相关推荐
Maven中的dependencyManagement元素提供了一种管理依赖版本号的方式。在dependencyManagement元素中声明所依赖的jar包的版本号等信息,那么所有<stron
在pom.xml中使用distributionManagement将项目打包上传到nexus私服(maven的一种远程私有仓库)。
<pre class="language-markup
一、概述
repositories配置jar仓库,pluginRepositories配置插件仓库。
二、通过项目pom.xml配置
<repositories>
<repository>
dependencyManagement
只是声明依赖,并不实际引入,只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目继承该项。
denpende
一、前置知识
1、settings.xml中的proxy、server、repository、mirror
proxy
是服务器不能直接访问外网时需要设置的代理服务。
server
是服务器
在构建Maven项目的时候,如果没有进行特殊配置,Maven会按照 标准的目录结构查找和处理各种类型文件。
src/main/java和src/test/java
<p
每个插件都都有一个<skip></skip>属性,maven在调用插件的时候判断这个属性的值是否是true,是true的话就跳过。
<pre class="lan