3

如果我在 <build> 标记中定义了一个插件并想在我的站点命令中使用它,我该怎么做?我是否必须再次在 <reporting> 标记中定义插件?

以及我可能在构建标签中完成的配置以及想要在报告标签中进行的配置怎么样?(我不想指定例如配置文件的位置两次,只是为了在 2 个生命周期中使用插件)

例如:我在构建标签中定义了我的 checkstyle 插件,并为要使用的规则配置了一个自定义位置。我这样做是因为规则被打包在一个 jar 中,所以我可以将它定义为依赖项。如果我在报告标签中这样做,这是不可能的。但我还需要在报告标签中使用这个插件,以便 surfire 可以为 checkstyle 生成报告。所以我还必须在报告标签中定义插件。

也许我在这里做错了,但除此之外我不知道该怎么做。我不喜欢的是我的 pom 中有两次 1 个插件(在构建标签和报告标签中)。

我希望有人可以验证我的解决方案是否正常,或者给我建议如何做得更好。

谢谢

库库

4

2 回答 2

4

当您定义它时,maven 插件通常会在给定的生命周期阶段执行。插件本身指定这是哪个生命周期阶段,但如果您有特殊需要,您可以更改它。

如果您有一个多模块构建,您可以定义一组插件,其中包含公共父 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-12T10:30:33.067 回答
2

除了 KRosenvold 的回答之外,您还可以通过在<pluginManagment>部分中声明一个插件来最小化配置,也许在继承链中的最顶层 pom 中,然后您可以省略在您声明它使用的所有其他地方指定插件的版本.

家长会:

<pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-1</version>
        </plugin>
    </plugins>
<pluginManagement>

儿童绒球:

<plugins>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
    </plugin>
</plugins>
于 2009-02-16T17:55:24.387 回答