请参阅下面的pom.xml中的插件配置。
我可以:
mvn myplugin:myGoal
哪个运行myGoal(我认为都是执行)但我希望能够独立选择第一个或第二个执行。
我知道我可以在执行元素中添加一个id,但是如何在命令行中引用该id。我想得到一些能够完成这个想象命令的功能:
mvn myplugin:myGoal --executionId=1
这是可能的,还是我以错误的方式解决这个问题?
<plugin>
<groupId>org.myplugin</groupId>
<artifactId>myplugin-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<goals>
<goal>myGoal</goal>
</goals>
<configuration>
<myParam>cats</myParam>
</configuration>
</execution>
<execution>
<goals>
<goal>myGoal</goal>
</goals>
<configuration>
<myParam>dogs</myParam>
</configuration>
</execution>
</executions>
</plugin>
我可以做
mvn myplugin:myGoalWhich
运行myGoal(我想这两个执行)
他们都没有(假设他们有独特的id
)。执行绑定到一个阶段,您需要运行给定阶段来触发它们。
我知道我可以在执行元素中添加一个id,但是如何在命令行中引用该id。
不支持。在CLI上调用的插件可以使用特殊的default-cli
executionId
在POM中定义非全局配置,如下所示:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
这是可能的,还是我以错误的方式解决这个问题?
不,不可能。在命令行上传递参数或使用配置文件(使用或不使用上述默认执行)。
现在,Maven 3.3.1+支持从CLI执行多个目标
mvn exec:java@first-cli
mvn exec:java@second-cli
first-cli / second-cli是执行ID。
http://blog.soebes.de/blog/2015/03/17/apache-maven-3-dot-3-1-features/
嘿,你可以这样创造你的目标: -
org.myplugin:myplugin-maven-plugin:1.1.1:myGoal i.e
<groupId>:<artifactId>:<version>:<yourgoal>
它适用于我的情况......
如果你打电话的假设
mvn myplugin:myGoal
但问题是你会得到一条错误消息,因为执行没有唯一的id(在这种情况下都有相同的)。
您可以通过mvn -PXYZ和mvn -PABC激活的配置文件达到您喜欢的功能