覆盖Maven插件中的依赖项(一个插件,不同的模块和不同的依赖项)

Non*_*nse 5 plugins pom.xml maven

我有一个Java项目,其中包含更多模块。在某些模块中,我使用了插件。在该插件中,我需要从其依赖项中覆盖一个。到目前为止,一切都很好。通过在插件定义中添加所需的依赖关系来解决。

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>xdoclet-maven-plugin</artifactId>
   <version>1.0</version>
   <dependencies>
      <dependency>
         <groupId>xdoclet</groupId>
         <artifactId>xjavadoc</artifactId>
         <version>1.5-SNAPSHOT</version>
       </dependency>
   </dependencies>
   ...
Run Code Online (Sandbox Code Playgroud)

但是在其中一个模块中,我需要使用其他版本覆盖该依赖关系。我试图以与覆盖相同的方式解决该问题。如果仅我仅编译该子模块,则使用正确的依赖项版本,但是如果我编译整个项目,则它不起作用,因为它使用其他模块的依赖项来插入插件,而不使用模块pom中指定的依赖项。

知道如何解决我的问题吗?

最好的问候,菲利普

小智 1

您可以为您的插件版本创建属性,例如xdoclet.version并使用它来覆盖父版本。

<properites>
   <xdoclet.version>1.5-SNAPSHOT</xdoclet.version>
</properties>
...
<plugin>enter code here
<groupId>org.codehaus.mojo</groupId>
<artifactId>xdoclet-maven-plugin</artifactId>
<version>1.0</version>
<dependencies>
  <dependency>
     <groupId>xdoclet</groupId>
     <artifactId>xjavadoc</artifactId>
     <version>${xdoclet.version}</version>
   </dependency>
</dependencies>
...
Run Code Online (Sandbox Code Playgroud)