19

マルチモジュールプロジェクトがあり、親pomには、いくつかのレポートプラグインが定義されています。一部のモジュールには、レポートプラグインを実行する必要のないコードが含まれているため、生成されたサイトに含める必要はありません。親pomレベルでそれらを無視するようにMavenに指示する方法はありますか?

アップデート:

ajozwikの回答に基づいて、スキップ構成を追加しました。私のPOMは次のようになります...

parent / 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>

client / 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

4 に答える 4

14

(子pomで)試しましたか?:

       <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.1</version>
          <configuration>
                <skip>true</skip>
          </configuration>
        </plugin>


アップデート。 プロパティを使用して、デフォルトの動作を再定義できます。あなたの子供たちのpomsをシンプルにしてください。
親pomセット(pluginManagementまたはpluginsセクション)

 <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>
于 2012-05-31T20:54:04.000 に答える
7

コマンドラインでのレポート生成を無視することもできます。

mvn -DgenerateReports=false package
于 2014-08-14T08:56:27.937 に答える
5

次のコマンドでレポートの生成を無視することもできます。

mvn -Dmaven.site.skip=trueクリーンインストールなど

于 2015-07-21T20:52:49.207 に答える
-3

Sonarのカバレッジを実行するには、Jacocoを次のように構成することもできます。

         <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プロジェクトのファイルjacoco.execがなくなり、ファイルはcovarageに使用されて期待どおりに処理されます

于 2020-01-06T13:53:45.480 に答える