我目前的方法是创建一个新插件,其中包含来自 maven-site-plugin 的相关类型的副本。除了更改类型名称、目标名称和删除 @requiresDependencyResolution 测试 注释之外,这些类型与标准版本相同。
复制的类型是:
org.apache.maven.plugins.site.AbstractSiteMojo
org.apache.maven.plugins.site.AbstractSiteRenderingMojo
父 mojo 是必需的,因此 Maven 可以处理基于 javadoc 的注释(这对于 Maven 2.2.0+ 来说不应该是必需的)。
org.apache.maven.plugins.site.SiteMojo
org.apache.maven.plugins.site.SiteJarMojo
这两个分别复制为 SiteOnlyMojo 和 SiteJarOnlyMojo , SiteJarOnlyMojo 改为继承自 SiteOnlyMojo 。否则,唯一的更改是更改目标名称并删除注释。
所以 SiteOnlyMojo 有:
* @goal site
* @requiresDependencyResolution test
改为:
* @goal site-only
SiteJarOnlyMojo 有:
* @goal jar
* @phase package
改为:
* @goal jar-only
* @phase package
这些类型在 maven-plugin 项目中声明,artifactId maven-site-only-plugin 具有在正确站点插件上声明的依赖项。
为了使用它,我定义了一个配置文件(我不希望在每次执行时都运行报告,仅当在命令行上声明 -Psite 时)并将其绑定到 prepare-package 阶段(在 2.1.0 之前,您必须将其绑定到 package 阶段)。
<profile>
<id>site</id>
<build>
<plugins>
<plugin>
<artifactId>maven-site-only-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>jar-only</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>