[英]Maven: Only execute plugin when a command line flag is present
我希望Maven仅在调用mvn
命令时在命令行上有标志时才运行某个插件。
例如:
假设我有一个名为maven-foo-plugin
。 我只希望当调用maven命令时出现--foo
标志时,maven才能运行此插件。
所以,不用说...
mvn install
...我会说...
mvn install --foo
第一个不应该使用/调用插件maven-foo-plugin
,但是第二个应该。 默认情况下,我不希望此插件运行,但是当且仅当--foo
存在。 我是否要在此maven-foo-plugin
添加另一个参数以使其执行此操作?
我使用的插件是maven-antrun-plugin
,其任务是将文件解压缩。 当然,有时此文件存在,有时不存在。 有时,它不存在,我不需要它。 因此,我需要一种方法(最好是通过命令行,除非有人有更好的主意)打开/关闭此插件。
在Maven中触发条件操作的正确方法是使用配置文件。 您可以配置一个特定的配置文件,包括激活插件,然后使用
mvn targetPhase -P myprofile
(您也可以指定特定的属性值来激活配置文件)
正如@Gab提到的,使用Maven配置文件是正确的方法。 创建一个配置文件并在该配置文件中配置您的插件。 然后,在配置文件的activation
部分中,引用环境变量(带或不带值):
<profiles>
<profile>
<activation>
<property>
<name>debug</name>
</property>
</activation>
...
</profile>
</profiles>
如果在调用Maven时定义了debug
变量,则上面的示例将激活配置文件:
mvn install -Ddebug
请注意,必须将环境变量添加-D
前缀,才能将其传递给运行Maven的JVM。
可以在这里找到更多详细信息: http : //maven.apache.org/guides/introduction/introduction-to-profiles.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.