有谁知道 maven-security-versions 插件以及如何使用它? github页面https://github.com/h3xstream/maven-security-versions包含的文档不多?
答案 0 :(得分:1)
我将在一般意义上回答这个问题,“我如何弄清楚如何使用没有详细记录的Maven插件”,因为很多时候我不得不阅读插件代码来理解某些东西是如何工作的。有时文档不清楚,除非有人是Maven专家。
要使用Maven插件,您需要了解的是:
我们可以访问源代码,因此我们深入研究src/main/java
并在类中查找,直到我们找到一个(或更多)扩展AbstractMojo
。
对于此插件,该类为SecurityVersionsCheck。它扩展AbstractMojo
并且没有实现MavenReport
所以它是一个构建插件。类的顶部通常有一个注释(有时在注释中),它会告诉您目标的名称,在本例中为check
。下一步是查看类的属性;任何用@parameter
注释的(同样可能在注释中)都是mojo参数。
/**
* @goal check
* @requiresProject true
* @requiresDirectInvocation false
* @aggregator true
*/
public class SecurityVersionsCheck extends AbstractMojo {
....
/**
* @parameter property="sec.updateRepo" defaultValue="false"
*/
private Boolean updateRepository = Boolean.FALSE;
....
有了这些信息,插件配置看起来如下所示。我为这个例子挑选了一个任意但合理的阶段。如果需要调整。
<build>
<plugins>
<plugin>
<groupId>com.h3xstream.maven</groupId>
<artifactId>maven-security-versions</artifactId>
<version><latestPluginVersion></version>
<phase>process-resources</phase>
<goals>
<goal>check</goal>
</goals>
</plugin>
</plugins>
</build>
这应该足以让你开始;更详细地阅读其余的源代码以了解更多信息。
答案 1 :(得分:0)
非常感谢user944849详细解释了如何弄清楚maven插件是如何工作的。所以我能够让它发挥作用:
在项目的pom中添加以下内容:
<plugin>
<groupId>com.h3xstream.maven</groupId>
<artifactId>security-versions</artifactId>
<version>1.0.2-SNAPSHOT</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>