我有一个多模块项目,在父pom中,我定义了几个报告插件。某些模块包含不需要对其运行报告插件的代码,并且我不需要在生成的站点中包含它们。有没有办法告诉Maven在父pom级别忽略它们?
根据ajozwik的回答,我添加了跳过配置。我的POM现在看起来像以下......
的父/ pom.xml的<modules>
<module>service</module>
<module>client</module>
</modules>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<formats>
<format>html</format>
</formats>
</configuration>
</plugin>
</plugins>
</reporting>
的客户机/ pom.xml的
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.1</version>
<configuration>
<skip>true</skip>
<skipDeploy>true</skipDeploy>
</configuration>
</plugin>
</plugins>
</build>
执行时:
mvn clean package site
构建成功,客户端的目标目录不包含生成的站点。我跑的时候:
mvn clean package site site-stage
为了暂存网站,它会正确分阶段。如果没有skipDeploy标记,则分段将失败...
答案 0 :(得分:13)
你有没有尝试过(在儿童pom中)?:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<小时/> 的更新强> 您可以使用属性重新定义默认行为。让你的孩子保持简单 在父pom集(pluginManagement或插件部分)
<properties>
<maven-site-plugin.skip>false</maven-site-plugin.skip>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.1</version>
<configuration>
<skip>${maven-site-plugin.skip}</skip>
</configuration>
</plugin>
在父pom中重新定义maven-site-plugin.skip
:
<properties>
<maven-site-plugin.skip>true</maven-site-plugin.skip>
</properties>
答案 1 :(得分:6)
您还可以在命令行上忽略报告生成:
mvn -DgenerateReports=false package
答案 2 :(得分:5)
您还可以使用以下命令忽略报告生成:
mvn -Dmaven.site.skip = true clean install例如
答案 3 :(得分:-1)
要获得Sonar的报道,还可以这样配置Jacoco;
{{ block("jsAssets", "assets.twig") }}
{{ block("cssAssets", "assets.twig") }}
这将导致您的项目没有 <plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
文件,现在/target/site/jacoco/jacoco.xml
文件将用于covarage,将按预期处理