从pom.xml外部的命令行运行maven插件



下面是maven的snyk插件设置。我已经在pom.xml中设置了插件。我在管道中配置了maven设置。以下配置具有一个秘密API_TOKEN。在除默认管道文件之外的任何文件中将API_TOKEN设置为变量都不起作用。因此,我正在探索一些在管道文件中设置和运行插件的方法,例如在mvn命令行中访问和运行插件mvn my-plugin:my-goal -Dplugin.property=ABC

但我不确定,如何调用snyk插件并在构建/安装/部署命令期间运行。

<plugin>
<groupId>io.snyk</groupId>
<artifactId>snyk-maven-plugin</artifactId>
<version>1.2.5</version>
<executions>
<execution>
<id>snyk-test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
<execution>
<id>snyk-monitor</id>
<phase>install</phase>
<goals>
<goal>monitor</goal>
</goals>
</execution>
</executions>
<configuration>
<apiToken>${SNYK_TOKEN}</apiToken>
<failOnSeverity>high</failOnSeverity>
<org>MDA</org>
</configuration>
</plugin>

团队刚刚发布了该插件的新版本。这是github回购。

示例

<build>
<plugins>
<plugin>
<groupId>io.snyk</groupId>
<artifactId>snyk-maven-plugin</artifactId>
<version>2.0.0</version>
<inherited>false</inherited>
<executions>
<execution>
<id>snyk-test</id>
<goals>
<goal>test</goal>
</goals>
</execution>
<execution>
<id>snyk-monitor</id>
<goals>
<goal>monitor</goal>
</goals>
</execution>
</executions>
<configuration>
<apiToken>${env.SNYK_TOKEN}</apiToken>
<args>
<arg>--all-projects</arg>
</args>
</configuration>
</plugin>
</plugins>
</build>

默认情况下,现在snyk-test链接到mvn test。默认情况下,monitormvn install相连接。很明显,你可以像下面这样改变。

<executions>
<execution>
<phase>verify</phase>
<id>snyk-test</id>
<goals>
<goal>test</goal>
</goals>
</execution>
<execution>
<phase>none</phase>
<id>snyk-monitor</id>
<goals>
<goal>monitor</goal>
</goals>
</execution>
</executions>

第一个示例中的API令牌是指环境变量。

更多信息,也许这篇博客文章提供了一个更完整的概述。

最新更新