Run a single Maven plugin execution?

对着背影说爱祢 提交于 2019-11-26 12:12:55

问题


I thought I was an experienced Maven user, but I am having a mental block on how to do this!

I\'ve been able to use the Maven sql plugin to drop, create, and install a schema in a database via plugin executions I\'ve defined and bound to the pre-integration-test phase.

However, now I\'d like to use that same sql plugin to insert some sample data whenever I want from the command line -- that is, not bound to any lifecycle goal. There are a few different sets of sample data, so I\'d like to define a few different executions.

But is there a way to run one of these executions from the command line by using the execution ID perhaps?


回答1:


As noted in How to execute maven plugin execution directly from command line?, this functionality has been implemented as MNG-5768, and is available in Maven 3.3.1.

The change will:

extend direct plugin invocation syntax to allow optional @execution-id parameter, e.g., org.apache.maven.plugins:maven-remote-resources-plugin:1.0:process@executionId.

So, as long as you give your execution an id:

mvn sql:execute@specific-execution-id

uses the execution configured in your pom.




回答2:


But is there a way to run one of these executions from the command line by using the execution ID perhaps?

No, not possible. What is possible though is to define "a" configuration to be used when the plugin is invoked from the command line using the "special" default-cli execution id:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.4</version>
  ...
  <executions>
    <execution>
      <id>default-cli</id>
      <configuration>
        ...
      </configuration>
    </execution>
    ...
  </executions>
</plugin>

And simply call mvn sql:execute.

See below for the details (from the Maven 2.2.0 Release Notes):

  • MNG-3401 - Starting in Maven 2.2.0, goals invoked directly from the command line can be configured in the POM separately from other plugin invocations using a special executionId called default-cli. Where previously, all configurations for command-line goals had to go in the plugin-level configuration, Maven 2.2.0 allows command-line-specific configurations to be separated into their own <execution>. For more information, see the Guide to Default Execution IDs.


来源:https://stackoverflow.com/questions/3779369/run-a-single-maven-plugin-execution

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!