在Maven插件中,当我有多个特定目标的配置时,如何使用特定配置运行特定目标
请参阅下面pom.xml中的插件配置 我可以做到:在Maven插件中,当我有多个特定目标的配置时,如何使用特定配置运行特定目标,maven,plugins,maven-2,pom.xml,Maven,Plugins,Maven 2,Pom.xml,请参阅下面pom.xml中的插件配置 我可以做到: mvn myplugin:myGoal 它运行我的目标(我想两个执行),但我希望能够独立选择第一个或第二个执行 我知道我可以向execution元素添加一个id,但是如何在命令行中引用该id呢。我想谈谈这个想象中的命令的作用: mvn-myplugin:myGoal--executionId=1 这是可能的,还是我走错了方向 <plugin> <groupId>org.myplug
mvn myplugin:myGoal
它运行我的目标(我想两个执行),但我希望能够独立选择第一个或第二个执行
我知道我可以向execution元素添加一个id,但是如何在命令行中引用该id呢。我想谈谈这个想象中的命令的作用:
mvn-myplugin:myGoal--executionId=1
这是可能的,还是我走错了方向
<plugin>
<groupId>org.myplugin</groupId>
<artifactId>myplugin-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>process-cats</id>
<goals>
<goal>myGoal</goal>
</goals>
<configuration>
<myParam>cats</myParam>
</configuration>
</execution>
<execution>
<id>process-dogs</id>
<goals>
<goal>myGoal</goal>
</goals>
<configuration>
<myParam>dogs</myParam>
</configuration>
</execution>
</executions>
</plugin>
org.myplugin
myplugin maven插件
1.1.1
加工猫
我的目标
猫
过程狗
我的目标
狗
假设你打电话
mvn myplugin:myGoal
但问题是,您将收到一条错误消息,因为执行没有唯一的id(在本例中,两者都具有相同的id)
您可以通过mvn-PXYZ和mvn-PABC激活的配置文件来实现您想要做的事情
我可以执行运行myGoal的mvn myplugin:myGoal(我想这两种执行都可以)
它们都没有(假设它们具有唯一的id
)。执行绑定到一个阶段,您需要运行给定的阶段来触发它们
我知道我可以向execution元素添加一个id,但是如何在命令行中引用该id呢
不支持。在CLI上调用的插件可以使用特殊的默认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
其中第一个cli/第二个cli是执行ID
对于您的示例,命令如下
mvn myplugin:mygoal@process-cats
mvn myplugin:mygoal@process-dogs
嘿,你可以这样创建你的目标:-
org.myplugin:myplugin-maven-plugin:1.1.1:myGoal i.e
<groupId>:<artifactId>:<version>:<yourgoal>
org.myplugin:myplugin-maven-plugin:1.1.1:myGoal即
:::
这对我来说很有效…你介意接受吗?先前接受的答案不再有效。同意,接受的答案“不,不可能”不正确。您可以使用mvn插件:goal@an_id现在。。所以,如果你有一个身份证,它会工作的。是的。如果您在多模块项目中,那么不要忘记添加-pl my module链接已失效。修复了链接!(现在https)