当我在命令行中执行一定的目标,我想激活一个配置文件“自动”。
比如我现在做:
mvn appengine:devserver -Pdevelopment
mvn appengine:update -Pproduction
基本上,我想作为我运行devserver目标自动激活发展概况。 同样的,我想激活,当我运行了更新的目标(除非使用-P选项明确覆盖)型材生产。
这可能吗?
当我在命令行中执行一定的目标,我想激活一个配置文件“自动”。
比如我现在做:
mvn appengine:devserver -Pdevelopment
mvn appengine:update -Pproduction
基本上,我想作为我运行devserver目标自动激活发展概况。 同样的,我想激活,当我运行了更新的目标(除非使用-P选项明确覆盖)型材生产。
这可能吗?
在Maven的模型告诉我们,作为配置文件包括各种元素,包括与构建 。 如下面的例子: -
<profile>
<id></id>
...
<build>
<plugins>
<plugin></plugin>
...
</plugins>
</build>
</profile>
正如我们上面看到的, profile
控制plugin
。 然后回答你的问题是没有。 我们不能让plugin
启动profile
。
我希望这可以帮助。
我同意前面的结论,你不能做到这一点。 我之前看到的推理可能会稍微落后。
该插件通过定义在命令行的目标(在该问题的特定情况下)活化,而不是由该插件在配置文件之中。
这可能是插件的默认配置( plugin.configuration
你试图覆盖这种方式,而不是特定的执行(配置) plugin.executions.execution.configuration
)。 这没意见。 但泡菜是获取配置文件启动。
如果你在你的命令行让所有的目标(如appengine:update
)有没有办法 ,要去激活的轮廓 。
当你阅读的讨论轮廓激活 (如我固执地在过去做了很多),你会发现,有轮廓的激活方面仍然受到很多人的期望很多。 对目标执行依据是什么激活配置文件甚至没有,我还没有碰到一个愿望 - 只是说:不要让你的希望。
你也可能不知道你想做什么是否真的合适。 你真的需要运行的目标,或者可能你有点仍然受益于Maven的生命周期 ?
Maven的生命周期是一个真正的(直线)路径完成,通过遍历阶段。 如果你想转移基于一定的条件下,这种路径,配置文件是要走的路。 如果appengine:update
和appengine:devserver
是“要么/或”(我相信他们是)你转移的路径,应该使用配置文件,真是的,最终仍要与具有您的命令行,至少两件事,即,在相位和所希望的轮廓。 如果有一个典型的例子,一个特殊的情况下,你可以表达,通过默认配置文件激活( activeByDefault
),并明确选择其他配置文件( -P
分别对应)。
mvn deploy // choose default profiles
mvn deploy -Pproduction // ignore default profiles
如果你想(例如两者都做devserver
在集成测试阶段,并update
部署期间)的生命周期可以配置为通过插件来实现executions
被绑定到一个phase
之后。 你只会对你的命令行一两件事,即相位。