2

我有一种情况,我必须读取某个属性文件,然后调用外部程序。

但是,似乎如果我调用“mvn exec:exec”,则不会调用验证阶段,因此不会读取属性。

在我目前的情况下,我无法将 exec:exec 与任何特定阶段联系起来(这是因为所有其他阶段都有非常具体的工作需要处理,而我试图用 exec:exec 执行的工作不映射到任何这些阶段。这更像是我正在尝试做的独立的事情)。

我发现的唯一解决方法是调用mvn validate exec:exec,它有效,但我的问题是:

  1. 作为 Maven 执行的一部分,将阶段和目标混合在一起是个好主意吗?
  2. 或者有没有办法让 exec 插件读取属性?
4

1 回答 1

1

您可以使用配置文件将其绑定到特定阶段,但仅在某些情况/某些环境中

http://maven.apache.org/guides/introduction/introduction-to-profiles.html

您可以使用用户或环境变量,或显式使用特定配置文件来触发您选择的配置文件。然后在这个新的配置文件中,您可以重新定义为自己拥有一个阶段。

真正创建自己的新生命周期阶段似乎是可能的,尽管并不容易:

https://community.jboss.org/wiki/CreatingACustomLifecycleInMaven?_sscc=t

老实说,我会坚持使用你的命令行,调用 validate 然后 exec。我不知道有任何副作用,正如你所说,这只是一个本地的、独立的任务。

于 2013-08-01T18:27:27.723 回答