我想知道在Maven中以动态方式将信息从父模块传递到子模块的传统方法是什么。
有财产继承,工作正常,但本质上是静态的。在父模块中激活任何生命周期阶段之前,子模块将继承属性,并且不会传播对它们进行的进一步更改。据我了解,这种行为是设计的。
我的目标是在父模块中进行一次计算,然后将结果传递给子模块。我想避免在每个子模块中重复相同的操作,因为它们非常耗时。更确切地说,我使用GMaven插件使用Groovy进行计算。
我知道MavenSession可能允许在多模块项目中传递信息,但是可以在不编写我自己的插件的情况下使用它吗?
答案 0 :(得分:0)
他们通常通过在插件之间共享FS中的对象来做到这一点,这似乎是最Maven的方式,但这种声音不完美。 MavenSession
的问题是只允许使用字符串。
如果您通过脚本运行GMaven,您可以尝试创建一个包含单个静态ConcurrentHashMap
的虚拟插件来存储共享状态,然后在Groovy脚本中访问它。