当我调用mvn
命令时,我希望Maven只在命令行上有标志时运行某个插件。
例如:
假设我有一个名为maven-foo-plugin
的插件。当我调用maven命令时,当标志--foo
存在时,我只希望maven运行此插件。
所以,而不是说......
mvn install
......我想说......
mvn install --foo
第一个不应该使用/调用插件maven-foo-plugin
,但第二个应该。默认情况下,我不希望此插件运行,但是当且仅当--foo
存在时。是否有另一个参数我添加到此maven-foo-plugin
以使其执行此操作?
我使用的插件是maven-antrun-plugin
,其任务是解压缩文件。当然,有时这个文件存在,有时不存在。有时,它不存在,我不需要它。所以,我需要一种方法(最好是通过命令行,除非有人有更好的主意)打开/关闭这个插件。
答案 0 :(得分:6)
在maven中触发条件操作的正确方法是使用配置文件。 您可以这样配置包含插件激活的特定配置文件,然后使用
触发执行 mvn targetPhase -P myprofile
(您还可以指定特定属性值以激活配置文件)
答案 1 :(得分:5)
正如@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