亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Maven項目版本繼承-我必須指定父版本嗎?

Maven項目版本繼承-我必須指定父版本嗎?

BIG陽 2019-11-25 11:01:23
我有兩個項目:父項目:A,子項目:BA / pom.xml:<groupId>com.dummy.bla</groupId><artifactId>parent</artifactId><version>0.1-SNAPSHOT</version><packaging>pom</packaging>在B / pom.xml中,我有:    <parent>        <groupId>com.dummy.bla</groupId>        <artifactId>parent</artifactId>        <version>0.1-SNAPSHOT</version>         </parent>    <groupId>com.dummy.bla.sub</groupId>    <artifactId>kid</artifactId>我希望B繼承父版本,所以我需要放在的唯一地方0.1-SNAPSHOT是A/pom.xml。但是,如果我<version>0.1-SNAPSHOT</version>從B/pom.xml父項下刪除,則maven會抱怨父項缺少版本。有沒有一種我可以使用的方法${project.version}或類似的方法來避免同時出現01.-SNAPSHOT在兩個pom中?
查看完整描述

3 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

自Maven 3.5.0以來,使用${revision}占位符對此有一個不錯的解決方案。有關詳細信息,請參見FrVaBe的答案。對于以前的Maven版本,請參見下面的原始答案。


不,沒有。您始終必須指定父母的版本。幸運的是,它繼承了大多數情況下所需的模塊版本。此外,Maven Release Plugin會自動更改該父級的版本聲明,因此-實際上-只要使用Maven Release Plugin進行發布或僅更改版本,就可以在2個位置擁有版本不是問題。


請注意,在某些情況下,此行為實際上還可以,并且可以提供您可能需要的更多靈活性。有時您想使用以前父母的某些版本來繼承,但是這不是主流情況。


查看完整回答
反對 回復 2019-11-25
?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

Maven并非以這種方式工作,但是存在一種解決方法可以實現此目標(也許有副作用,您必須嘗試一下)。訣竅是告訴子項目通過其相對路徑而不是其純Maven坐標來找到其父項,并且還要外部化屬性中的版本號:


父pom

<groupId>com.dummy.bla</groupId>

<artifactId>parent</artifactId>

<version>${global.version}</version>

<packaging>pom</packaging>


<properties>

   <!-- Unique entry point for version number management --> 

   <global.version>0.1-SNAPSHOT</global.version>

</properties>

兒童絨球

<parent>

   <groupId>com.dummy.bla</groupId>

   <artifactId>parent</artifactId>

   <version>${global.version}</version>

   <relativePath>..</relativePath>    

</parent>


<groupId>com.dummy.bla.sub</groupId>

<artifactId>kid</artifactId>

我在我的項目中使用了一段時間的技巧,沒有任何具體問題,除了maven在構建開始時會記錄很多警告(這不是很優雅)的事實。


編輯

似乎maven 3.0.4不再允許這種配置。


查看完整回答
反對 回復 2019-11-25
  • 3 回答
  • 0 關注
  • 2274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號