Maven插件何时在当前目录中使用POM?

时间:2018-06-12 19:26:24

标签: maven maven-plugin

我使用Versions Maven插件来检查我的依赖项的更新。因此,我在pom.xml添加了以下几行:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>versions-maven-plugin</artifactId>
    <version>${versions-plugin.version}</version>
    <configuration>
        <rulesUri>classpath:///rules.xml</rulesUri>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>versionrules</groupId>
            <artifactId>versionrules</artifactId>
            <version>1-SNAPSHOT</version>
        </dependency>
    </dependencies>
</plugin>

但是如果我从命令行运行Versions Maven插件与pom.xml在同一目录中,则不使用此配置。使用我自己的配置的唯一方法是将此插件配置放在profil中并在Maven运行期间执行此profil。

有没有办法在命令行上运行Versions插件并通过pom.xml进行配置?我相信我的问题不仅适用于Versions插件,也适用于任何Maven插件。

1 个答案:

答案 0 :(得分:1)

这可以通过在执行定义中使用执行标识default-cli来完成,配置将在命令行执行期间使用(使用当前配置),因为Maven 3.3.1您可以使用类似的东西:

mvn version:set@second-cli

这意味着您可以在pom文件中对命令行执行不同的配置:

只需简单地用不同的ID分隔它们

 <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>2.5.</version>
        <executions>
          <execution>
            <id>default-cli</id>
            <configuration>
              ...
            </configuration>
          </execution>
          <execution>
            <id>second-cli</id>
            <configuration>
               ....
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins> 
  </build>

因此,这意味着您可以通过提供id来在命令行上运行不同的配置。