我的公司爲使用該軟件的Java API的項目管理軟件編寫配套產品。他們發佈了新版本的API,併發布了新版本的產品,並且還針對錯誤修復等發佈了指導。我們需要爲使用各種版本的軟件(以及擴展API)的客戶提供支持。爲了在沒有不必要的代碼重複的情況下實現這一點,我們在產品中定義了包含每個API版本所需的依賴關係的配置文件。在依賴POM中激活配置文件?
我有一個使用這種技術構建的戰爭項目,激活了「api70」配置文件,另一個項目依賴於該戰爭項目的一種類型的pom,以吸引戰爭的依賴。問題在於,在構建第二個項目時,雖然我在構建依賴項目時在maven命令行上定義了-Papi70,但未包含特定於配置文件的依賴項。
有沒有什麼辦法讓這個工作?
在戰爭項目:
<!-- API 7.0 profile. -->
<profile>
<id>api70</id>
<dependencies>
<dependency>
<groupId>com.bigcompany</groupId>
<artifactId>integrationlibrary</artifactId>
<version>7.0-a</version>
</dependency>
</dependencies>
<properties>
<apiversion>api70</apiversion>
</properties>
</profile>
在根據項目:用於建築
<!-- Depend on war as type=pom for dependency mediation. -->
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>warproject</artifactId>
<version>${warVersion}</version>
<type>pom</type>
</dependency>
命令行根據項目:
mvn -P api70 clean package
產生的構建不包括integrationlibrary或其任何傳遞依賴。
「另一個項目」,依賴於戰爭的包裝是什麼?這個項目是否繼承戰爭項目? – 2009-10-29 22:49:21
@ user19113:配置文件不是傳遞性的,不會被繼承。您只能通過父POM共享相同的配置文件才能這樣做。 – 2011-01-28 16:08:08