![](/img/trans.png)
[英]Maven warning 'Overriding managed version 2.5.3 for maven-release-plugin'
[英]Overriding dependencies version in maven plugin
我項目的 pom 包含:
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
我使用這個 Maven 插件 ( tomcat7-maven-plugin ) 通過運行來測試我的 war 文件:
mvn tomcat7:run
該插件本身是多模塊項目tomcat-maven-plugin的一個模塊。
tomcat-maven-plugin-2.2.pom(parent/reactor)的部分內容:
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<packaging>pom</packaging>
<name>Apache Tomcat Maven Plugin</name>
<version>2.2</version>
<properties>
<tomcat7Version>7.0.47</tomcat7Version>
</properties>
tomcat7-maven-plugin-2.2.pom(模塊)部分內容:
<parent>
<artifactId>tomcat-maven-plugin</artifactId>
<groupId>org.apache.tomcat.maven</groupId>
<version>2.2</version>
</parent>
<artifactId>tomcat7-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
<name>Apache Tomcat Maven Plugin :: Tomcat 7.x</name>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat7Version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-util</artifactId>
<version>${tomcat7Version}</version>
</dependency>
</dependencies>
從這些 poms 可以看出,tomcat7-maven-plugin 模塊包含大量 tomcat 依賴項。 這些依賴項的版本由父級的屬性tomcat7Version集中管理。
在上面的示例中,tomcat-embed-core 和 tomcat-util 依賴項的版本是 7.0.47,如在父級的 pom.xml 中定義的那樣。
我正在尋找一種方法來覆蓋tomcat7Version屬性。
我絕對可以覆蓋我項目的 pom 中的所有 tomcat 依賴項,如下所示:
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat7-maven-plugin -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>7.0.109</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-util</artifactId>
<version>7.0.109</version>
</dependency>
</dependencies>
</plugin>
但這不是解決需求的優雅方式。 目前有 18 個依賴項,通常可以有任意數量的依賴項。 因此覆蓋每個依賴項的版本可能會很混亂。
是否可以從項目的 pom中覆蓋tomcat7Version屬性?
一般的想法是集中覆蓋父級 pom.xml 中定義的參數。
您可以像這樣通過 pluginManagement 定義一個插件:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>..</groupId>
<artifactId>..</artifactId>
<version>..</version>
</plugin>
</plugins>
</pluginManagement>
</build>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.