簡體   English   中英

mvn release:執行失敗,因為pom文件不在存儲庫的根目錄下

[英]mvn release:perform fails because pom file is not at root of repository

我正在嘗試執行mvn release:perform ,但該命令假定pom文件位於存儲庫的根目錄下。 是否有我可以設置的系統屬性或首選項來覆蓋默認值?

mvn release:prepare的調用似乎已成功,因為所有發布工件都位於目標目錄中,並且存儲庫已正確標記。

如果重要,這是一個git項目。


編輯這是我做的:

cd /path/to/git/root/path/to/mvn/project
mvn -DdevelopmentVersion=1.2.0-SNAPSHOT -DreleaseVersion=1.1.0 release:prepare
...enter correct passphrase and choose all default options...
mvn release:perform

然后克隆target/checkout目錄中的遠程倉庫,並在一些攪拌並推送到遠程git倉庫后,發生以下錯誤:

[ERROR]   
[ERROR]   The project  (/path/to/git/root/path/to/mvn/project/target/checkout/pom.xml) has 1 error
[ERROR]     Non-readable POM /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml: /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml (No such file or directory)

因此,maven正在target/checkout目錄的根目錄中查找pom文件,而該目錄不在它所在的位置。

我有同樣的問題。 把它添加到你的pom:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.2.1</version>
  <executions>
    <execution>
        <id>default</id>
        <goals>
            <goal>perform</goal>
        </goals>
        <configuration>
            <pomFileName>subdir/pom.xml</pomFileName>
        </configuration>
    </execution>
  </executions>
</plugin>

資料來源: https//stackoverflow.com/a/8233712/555220

由於根pom實際上不在源代碼控制中,我認為發布:prepare和release:perform不適合你。 我認為這些命令的目標之一就是確保發布的項目可以根據源控件構建(並通過測試),而不是一個人的機器上的內容。 這就是它試圖結賬和重建的原因。 如果pom根本不在源代碼控制中,那么這個目標是不可能的。 您可能必須手動執行發布的步驟:准備和發布:執行:刪除快照,提交,標記,mvn部署,增加版本添加快照,提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM