-3

我想知道在 Maven 中以动态方式将信息从父模块传递到子模块的传统方法是什么。

有属性继承可以正常工作,但本质上是静态的。在父模块中激活任何生命周期阶段之前,属性会被子模块继承,并且不会传播对它们所做的进一步更改。据我了解,这种行为是设计使然。

我的目标是在父模块中进行一次计算,然后将结果传递给子模块。我想避免在每个子模块中重复相同的操作,因为它们很耗时。更准确地说,我使用 GMaven 插件使用 Groovy 进行计算。

我知道有 MavenSession 可能允许跨多模块项目传递信息,但是可以在不编写我自己的插件的情况下使用它吗?

4

1 回答 1

0

他们通常通过在插件之间共享 FS 中的对象来做到这一点,这似乎是最 Maven 的方式,但这种声音并不完美。问题MavenSession在于它只允许字符串。

使用 GMaven,如果您通过脚本运行,您可以尝试创建一个包含单个静态的虚拟插件ConcurrentHashMap来存储共享状态,然后在 Groovy 脚本中访问它。

然而,我会继续使用传统方法,但使用 GMaven 可能会变得更好,因为我已经有两年没有接触过它了。

于 2013-11-18T21:27:03.690 回答