Maven跳过网站/报告模块

时间:2012-05-25 15:21:25

标签: maven maven-site-plugin

我有一个多模块项目,在父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标记,则分段将失败...

4 个答案:

答案 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,将按预期处理