如何使用maven-security-versions插件?

时间:2015-10-28 08:04:43

标签: maven maven-3

有谁知道 maven-security-versions 插件以及如何使用它? github页面https://github.com/h3xstream/maven-security-versions包含的文档不多?

2 个答案:

答案 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插件是如何工作的。所以我能够让它发挥作用:

  1. 下载github项目并将插件构建/安装到Maven存储库
  2. 在项目的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>