用變數替換 pom.xml 檔案中父塊中的版本時出現錯誤。
對于屬性選項卡,它作業正常,但是當我將版本更改為在父塊中的“ mvn clean install ”之前匯出的變數時,構建失敗。
錯誤如下所示。
“引起:org.sonatype.aether.transfer.ArtifactTransferException:無法從/向 abc-repos(https:// /continuousintegration.abc.com/artifactory/abc-repos):索引 122 處的路徑中的非法字符:https : //continuousintegration.abc.com/artifactory/abc-repos/org/springframework/boot/spring-boot-starter- parent/${env.SPRINGBOOTVERSION}/spring-boot-starter-parent-${env.SPRINGBOOTVERSION}.pom"
在 pom.xml 得到決議之前,這里的變數不會被替換為父 pom。
下面是被替換的 pom.xml 的代碼塊。
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>${env.SPRINGBOOTVERSION}</version> ---------> replaced version by variable
<relativePath />
</parent>
這里的 maven 版本是 3.0.5 ---(也嘗試使用 3.8.1 進行本地構建)
對此的任何解決方案都會有所幫助。
供參考 :
變數以以下格式存盤在檔案中。
---> 匯出 SPRINGBOOTVERSION=1.2.3
然后使用 source 命令獲取到 shell。
此外,在 pom.xml 中的屬性塊中給出的變數被 maven 接受,并且它也在作業。這里只有父塊有問題。
uj5u.com熱心網友回復:
澄清一下,您正在設定替換變數的值:
Spring Boot 版本
在您的環境中以某種方式,即作為運行您的命令的 shell 中的環境變數,它不起作用?
uj5u.com熱心網友回復:
IMO,maven 永遠不會支持你想要的行為,原因是當你在做mvn install或mvn deploymaven 將工件與 pom 檔案一起部署到本地或遠程存盤庫時,但是關于你的構建環境(即${env.SPRINGBOOTVERSION})的資訊沒有存盤在任何地方,所以,這不是錯誤或缺乏功能 - maven 只是防止在 maven 存盤庫中存盤無效的 pom 檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378565.html
