java - 如何在多模块项目中使用 Maven Checkstyle 插件?

标签 java maven-2 checkstyle

这是我在多模块项目中的父 pom.xml(其中的一部分):

...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>check</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
…

此配置指示mvn 在根项目 的每个子模块中执行checkstyle 插件。我不希望它以这种方式工作。相反,我希望这个插件只对根项目执行,并跳过每个子模块。同时,我有很多子模块,我不喜欢在每个子模块中显式跳过插件执行的想法。

Checkstyle 文档 says..确保您不在子模块中包含 Maven Checkstyle 插件..”。但是我如何确保如果我的子模块继承了我的根 pom.xml?我迷路了,请帮忙。

最佳答案

But how can I ensure that if my sub-modules inherit my root pom.xml?

要严格回答这个问题,您可以指定一个 <inherited> <plugin> 中的元素定义。来自POM Reference :

inherited: true or false, whether or not this plugin configuration should apply to POMs which inherit from this one.

像这样:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <!-- Lock down plugin version for build reproducibility -->
  <version>2.5</version>
  <inherited>true</inherited>
  <configuration>
    ...
  </configuration>
</plugin> 

一些更多的建议/评论(可能不适用):

关于java - 如何在多模块项目中使用 Maven Checkstyle 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414440/

相关文章:

java - 有没有一种快速的方法来重构整个代码库以采用不同的代码约定?

java - (object instanceof C) C 的类型是什么?

java - Checkstyle 输出大量调试语句

java - 如何修复非法包导入 checkstyle 警告

java - 控制 jar 工件的 Maven 最终名称

java - Maven安装j2ee文件夹结构问题(spring,struts..)

distcc 的 Java 等价物

java - 如果使用不同的方法连接,为什么 Mongo 不抛出异常?

java - JPA/Hibernate 似乎将带有 in 子句的查询转换为带有 = 子句的多个查询

java - 运行玩!来自 java