这是我在多模块项目中的父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插件.我不希望它以这种方式工作.相反,我希望这个插件只为root项目执行,并为每个子模块跳过.同时,我有很多子模块,我不喜欢在每个模块中明确地跳过插件执行的想法.
checkstyle says的文档“..确保您的子模块中不包含Maven Checkstyle插件..”.但是,如果我的子模块继承我的root pom.xml,我怎么能确保?我迷路了,请帮忙.
解决方法:
也许您应该将根pom分成两个独立的实体:父pom和聚合器pom.您的聚合器pom甚至可能从父pom继承.
如果你为hibernate下载最新的项目布局,你会看到这个设计模式在运行.
完成此分离后,您可以在聚合器/根pom中定义和执行checkstyle插件.因为它不再是子模块的父级,所以它们不会被它们继承.
编辑
使用< relativePath>当声明< parent>时
仅用于演示,下面是从hibernate项目结构中获取的示例.
整个分布可以在这里找到 – > http://sourceforge.net/projects/hibernate/files/hibernate3
就这样,你有一些上下文,这是他们的目录布局的一个子集
project-root
|
+-pom.xml
|
+ parent
| |
| +-pom.xml
|
+ core
|
+-pom.xml
.. rest is scipped for brevity
project-root / pom.xml片段
<parent>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-parent</artifactId>
<version>3.5.4-Final</version>
<relativePath>parent/pom.xml</relativePath>
</parent>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<packaging>pom</packaging>
<name>Hibernate Core Aggregator</name>
<description>Aggregator of the Hibernate Core modules.</description>
<modules>
<module>parent</module>
<module>core</module>
project-root / parent / pom.xml片段
<groupId>org.hibernate</groupId>
<artifactId>hibernate-parent</artifactId>
<packaging>pom</packaging>
<version>3.5.4-Final</version>
project-root / core / pom.xml片段
<parent>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-parent</artifactId>
<version>3.5.4-Final</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<packaging>jar</packaging>
标签:java,maven-2,checkstyle 来源: https://codeday.me/bug/20190518/1129771.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。