如何在全局maven父项目与其用户之间共享checkstyle XML配置/ configLocation文件?

时间:2017-02-08 20:17:21

标签: java maven checkstyle

我正在开发一个Maven父项目(不是聚合器!)项目,其中包含Maven插件和其他几乎我在每个项目中重复的内容以及我希望在项目中使用的

<parent>
    <groupId>richtercloud</groupId>
    <artifactId>maven-parent</artifactId>
    <version>1</version>
    <relativePath></relativePath>
</parent>

成语。 relativePath是空的,因为解决方案应该通过Maven缓存进行,因为您可能知道您是否愿意回答这个问题。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.17</version>
    <executions>
        <execution>
            <id>check_style</id>
            <goals>
                <goal>check</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
                <includeTestSourceDirectory>true</includeTestSourceDirectory>
            </configuration>
        </execution>
    </executions>
    <configuration>
        <configLocation>check_style.xml</configLocation>
    </configuration>
</plugin>

因此maven-checkstyle-plugin用于上面包含parent指令的所有项目。

事情是那个

  • 将上面的plugin部分放入父级reporting(没有executions,因为它无效),然后configuration被忽略,因此正在使用的默认XML
  • plugin部分放入父POM中的build,然后父项目不编译,因为它不搜索类路径中configLocation中指定的文件( which it should afaik)因Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (check_style) on project maven-parent: Failed during checkstyle execution: Unable to find configuration file at location: check_style.xml: Could not find resource 'check_style.xml'. -> [Help 1]而失败。预先src/main/resources有助于编译父项,但会导致所有其他项目失败,因为它们将configLocation解析为src/main/resources/src/main/resources/check_style.xml这是正确的。一个错误?

Maven inherit parent module resources没有回答这个问题,因为问题没有说明它如何引用parent项目,即relativePath项目。

我正在使用Maven 3.3.9。

0 个答案:

没有答案