我正在嘗試使用子模塊來測試項目並正確生成報告,但遇到了一些問題。多個模塊項目的Maven報告和網站生成
我有以下項目結構:
parent
|-test1
|-test2
和parent
pom.xml中看起來是這樣的:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>parent</groupId>
<artifactId>parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>test1</module>
<module>test2</module>
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.16</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<configuration>
<aggregate>true</aggregate>
<reportsDirectories>
<reportsDirectory>${basedir}/target/surefire-reports</reportsDirectory>
</reportsDirectories>
</configuration>
<reportSets>
<reportSet>
<inherited>false</inherited>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
而且我用mvn clean install site
構建項目,運行測試並生成一個網站(使用maven網站插件,反過來使用maven surefire報告插件,生成測試報告)。
麻煩的是父pom.xml中與各個階段的執行(清潔,安裝和現場)執行前的子模塊的pom.xml,因此從test1
和test2
沒有測試報告聚集在parent
。
那麼有沒有辦法在一行中執行mvn clean install site
,或者我絕對必須先執行mvn clean install
然後再執行mvn site
?
感謝您的任何建議。
感謝您對聚合器的建議,這是一個很好的解決方案。而且你也正確地預測到「舊文件存在,所以聚合器對這些文件進行操作」:) – stackoverflower