如果我在标签中定义了一个插件,并且想在我的site命令中使用它,我该怎么做呢?我需要在标签中重新定义插件吗?
我可能已经在build标记中进行了配置,并且希望在reporting标记中也进行配置,那么配置又如何呢?(例如,我不想为了在两个生命周期中使用一个插件而两次指定配置文件的位置)
例如:我在build标签中定义了checkstyle插件,并为要使用的规则配置了一个自定义位置。我这样做是因为规则被打包在jar中,所以我可以将其定义为依赖项。如果我在reporting标签中这样做,这是不可能的。但是我也需要在reporting标签中使用这个插件,这样surfire就可以为checkstyle生成一个报告。因此,我还必须在reporting标记中定义插件。
也许我在这里做了一些完全错误的事情,但我看不出我还能做什么。我不喜欢的是我的pom中有两个插件(在build标签和reporting标签中)。
我希望有人能证明我的解决方案是好的,或者给我一个如何做得更好的建议。
thx
kuku
发布于 2009-02-12 10:30:33
当您定义maven插件时,它通常被绑定到在给定的生命周期阶段执行。插件本身指定了这是哪个生命周期阶段,但如果您有特殊需求,您可以更改此阶段。
如果你有一个多模块的构建,你可以定义一组插件,所有的参数都需要在一个公共的parent-pom中。这通常会对构建中的每个子模块执行。如果您不希望发生这种情况,您可以这样定义它(在父pom中):
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
... More plugin cofniguration stuff ...
</plugin>如果你在一个或多个嵌套的模块中想要启用这个插件,你只需要说:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>false</skip>
</configuration>
... Maybe Configuration ....
</plugin>在该特定模块中。可以选择是否要重新配置从父项定义继承的缺省参数。
我想这就是你要找的吧?
发布于 2009-02-16 17:55:24
除了KRosenvold的答案之外,你还可以通过在<pluginManagment>部分声明一个插件来最小化配置,也许是在你的topmost pom in the inheritance chain中,然后你就可以omit specifying the version of the plugin in all the other places you are declaring it's use了。
父Pom:
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-1</version>
</plugin>
</plugins>
<pluginManagement>子Pom:
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
</plugin>
</plugins>https://stackoverflow.com/questions/540697
复制相似问题