我們在POM中指定versionId,相應的maven生成foo-version.jar。例如:foo-1.0-SNAPSHOT.jar。maven build - 版本信息
是否有可能使用maven做以下事情?
- 未在POM中指定versionId,但從命令行指定了構建版本。這將有助於不對POM中的版本進行「硬編碼」並對每個版本進行更改,而是通過超級構建腳本進行指定。在POM
我們在POM中指定versionId,相應的maven生成foo-version.jar。例如:foo-1.0-SNAPSHOT.jar。maven build - 版本信息
是否有可能使用maven做以下事情?
設置的項目版本作爲佔位符
<groupId>test</groupId>
<artifactId>x</artifactId>
<version>${project.version}</version>
現在你可以從命令行傳遞版本
mvn -Dproject.version=1.1.1 package
我嘗試過在Maven 2的舊版本中,iirc這種方法不起作用。生成的POM生成不可用。 (我希望現在已經有所改進)。這就是爲什麼我需要編寫一個腳本來執行POM的版本更改的原因。 –
這個工作正常,但生成/安裝的POM也有'
你可以使用maven release plugin。
release:update-versions -DautoVersionSubmodules=true
,如果你想爲每個模塊相同的版本,你需要autoVersionSubmodules。否則你需要指定每個版本。
這隻會增加您的當前版本,如果你想有一個特定版本添加-DdevelopmentVersion=your version
到命令
UPDATE 我發現了另一個插件做的伎倆。 The maven versions plugin
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
使用此命令可以設置版本: versions:set -DnewVersion=your version
當我嘗試第一個選項,我得到這個錯誤:'[錯誤]無法執行目標org.apache.maven.plugins:maven-release-plugin:2.3.2:項目簡單的更新版本(默認 - cli) :缺少必需的設置:必須指定scm連接或developerConnection。 - > [幫助1]'。第二個選項更新*版本後的版本*!無論如何,這個想法是保持版本不在POM中,因爲POM被簽入到CM中,我們不想爲每個版本提交文件。 – gammay
然後你需要添加scm標籤到你的pom,[這裏是](http://maven.apache.org/scm/maven-scm-plugin/usage.html)它的一個例子 – mokuril
更改發佈應發佈的插件,而不是手動完成。 – khmarbaise
如果您的軟件具有特定的二進制版本,您將如何知道使用哪個版本的源代碼來構建它? – artbristol