问题描述
以下是 maven 的 snyk 插件设置。我已经在 pom.xml 中设置了插件。我在管道中配置了 Maven 设置。下面的配置有一个秘密的 API_TOKEN。在除默认管道文件之外的任何文件中将 API_TOKEN 设置为变量都不起作用。所以我正在探索一些方法来设置和运行管道文件中的插件,即例如在 mvn 命令行中访问和运行插件 mvn my-plugin:my-goal -dplugin.property=ABC.
但我不确定如何在 build/install/deploy 命令期间调用 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 repo。
示例
<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
。 monitor
默认连接到 mvn 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 令牌指的是环境变量。
有关详细信息,blog post 可能提供了更完整的概述。