可以直接使用指令來更新版本
mvn versions:set -DnewVersion={ 版本號 }
例如我原本是
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.foo</groupId>
<artifactId>bar-app</artifactId>
<version>1.0-SNAPSHOT</version>
<name>bar-app</name>
<!-- 中略 -->
</project>
執行
mvn versions:set -DnewVersion=1.0.3-SNAPSHOT,就會變成
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.foo</groupId>
<artifactId>bar-app</artifactId>
<version>1.0.3-SNAPSHOT</version> <!-- 這邊更新了 -->
<name>bar-app</name>
<!-- 中略 -->
</project>
舊版本條件
如果限定 n 版本以前的才進行更新,例如 1.0.* 版本更新至 1.1.0 版,用
-DoldVersion 參數處理,例如
mvn versions:set -DoldVersion=1.0.* -DnewVersion=1.1.0
根據舊版本號,是否更新可參照下表
| 舊版本 | 是否更新至 1.1.0 版 |
|---|---|
| 1.0-SNAPSHOT | |
| 1.0.0-SNAPSHOT | ✅ |
| 1.0.1 | ✅ |
| 1.1.0-SNAPSHOT | |
| 2 |
指定 module
如果要更新不同指定 module ,可以用 groupId 或者
artifactId 參數來告知,例如:
mvn versions:set -DgroupId=com.example.bar -DnewVersion=1.1.0
mvn versions:set -DgroupId=com.example.bar -DartifactId=foobar -DnewVersion=1.1.0
參考資料
Connolly, S. (2009, May 25). Changing the Project Version. MojoHaus. https://www.mojohaus.org/versions/versions-maven-plugin/examples/set.html
沒有留言:
張貼留言