我想通过Maven的site插件来生成自定义报告,但仅限于此自定义报告,而不是由project-info-reports-plugin默认生成的所有报告。
问题: 有什么推荐的方法可以实现这一点吗?
我看到该插件有跳过属性可以禁用特定报告,但这似乎很繁琐,因此我正在寻找一种完全禁用该插件的方法。
我想通过Maven的site插件来生成自定义报告,但仅限于此自定义报告,而不是由project-info-reports-plugin默认生成的所有报告。
问题: 有什么推荐的方法可以实现这一点吗?
我看到该插件有跳过属性可以禁用特定报告,但这似乎很繁琐,因此我正在寻找一种完全禁用该插件的方法。
正如评论中提到但需要进一步澄清(请参见下面的第二种情况),您需要在POM中禁用/跳过插件,以便禁用您从默认父POM继承的行为(通过任何现有的父POM链)。
但是,您需要从reporting/plugins
部分禁用它(而不是build/plugins
部分),如下所示:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
<reportSets>
<reportSet>
<configuration>
<skip>true</skip>
</configuration>
</reportSet>
</reportSets>
</plugin>
<!-- any further custom report here -->
</plugins>
</reporting>
请注意skip
元素被设置为true
。这将跳过生成项目信息部分(依赖项、关于、摘要等)。在报告部分,您可以添加任何自定义报告(javadoc、checkstyle等),它们将被添加到项目文档根目录下的项目报告部分。
设置以下内容不会跳过它(我已经尝试过了,以确保其行为):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
当禁用默认的项目信息部分时,有一点需要注意:您将不再生成index.html
文件(来自默认的关于页面),这可能会普遍导致一些麻烦(我们总是需要一个index.html
文件)。
在这种情况下,可以采用以下解决方案:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- any further custom report here -->
</plugins>
</reporting>
这将仍然创建项目信息部分,但只提供关于页面,也就是来自您的POM中description
元素的项目一般描述。
project-info-reports-plugin
插件是在全局父POM中定义的。 - Ferrybig