0

下面是 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>
4

1 回答 1

0

该团队刚刚发布了该插件的新版本。这是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. 默认情况下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 令牌是指环境变量。

有关更多信息,这篇博客文章可能会提供更完整的概述。

于 2021-04-22T13:34:48.270 回答