Oliver
Oliver

Reputation: 4173

When does a Maven plugin uses the POM in the current directory?

I use the Versions Maven Plugin to check for updates of my dependencies. Therefore I added the following lines to my 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>

But this configuration is not used if I run the Versions Maven Plugin from the commandline in the same directory as the pom.xml. The only way to use my own configuration is to put this plugin configuration in a profil and execute this profil during the Maven run.

Is there a way to run the Versions plugin on the commandline and to configure it via the pom.xml? I am sure my questions does not only apply to the Versions plugin, but to any Maven plugin.

Upvotes: 0

Views: 54

Answers (1)

khmarbaise
khmarbaise

Reputation: 97409

This can be done by using an execution id default-cli in your execution definition the configuration will be used during the execution on command line (using the current configuration) furthermore since Maven 3.3.1 you can use things like:

mvn version:set@second-cli

which means you can do a different configuration for command line in the pom file:

Just by simply separating them by different 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>

So this means you can have different configurations for running on command line by giving the id.

Upvotes: 1

Related Questions