【问题标题】:Running maven plugin from command line outside pom.xml从 pom.xml 之外的命令行运行 maven 插件
【发布时间】:2021-01-05 16:34:12
【问题描述】:

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

但我不确定,如何调用 snyk 插件并在 build/install/deploy 命令期间运行。

<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>

【问题讨论】:

  • 我不太清楚你的意思。您可以在命令行上运行任何插件(按照您所说的方式),但它不会成为生命周期的一部分,即不属于安装或部署等任何阶段。
  • 没关系,如果它不属于任何生命周期阶段

标签: maven maven-plugin snyk


【解决方案1】:

团队刚刚发布了插件的新版本。这是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 testmonitor 默认连接到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 可能会提供更完整的概述。

【讨论】:

    猜你喜欢
    • 2011-03-30
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2019-05-21
    • 2018-10-13
    相关资源
    最近更新 更多