2013-07-02 48 views
3

我有一个java项目,它有更多的模块。在一些模块中,我使用了一个插件。 在那个插件中,我需要覆盖它的依赖关系。到现在为止还挺好。通过在插件定义中添加所需的依赖项解决。覆盖Maven插件(一个插件,不同的模块和不同的依赖项)的依赖关系

<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> 
    ... 

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

任何想法如何解决我的问题?

最好的问候,菲利普

回答

1

您可以创建属性为你的插件版本,e.g 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> 
...