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

覆盖maven插件中的依赖项(一个插件、不同的模块和不同的依赖项),maven,plugins,pom.xml,Maven,Plugins,Pom.xml,我有一个java项目,它有更多的模块。在一些模块中,我使用插件。 在该插件中,我需要从依赖项中重写一个插件。到现在为止,一直都还不错。通过在插件定义中添加所需的依赖项来解决 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>xdoclet-maven-plugin</artifactId> <version>1.0</version&g

我有一个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>
   ...

org.codehaus.mojo
xdoclet maven插件
1
xdoclet
xjavadoc
1.5-1
...
但在其中一个模块中,我需要用其他版本覆盖该依赖关系。我试图用与覆盖相同的方法来解决这个问题。 如果我只编译该子模块,将使用正确的依赖版本,但是如果我编译整个项目,它将不起作用,因为它使用其他模块对插件的依赖,而不是模块pom中指定的依赖

你知道怎么解决我的问题吗


致以最诚挚的问候,Filip

您可以为插件版本创建属性,例如
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>
...

1.5-1
...
在这里输入代码
org.codehaus.mojo
xdoclet maven插件
1
xdoclet
xjavadoc
${xdoclet.version}
...