我应该将主要实现放在多模块Maven项目中的哪个位置?

时间:2010-10-10 02:46:32

标签: java maven-2

我有一个小型(4模块)maven项目,其中包含pom包装中的根pom。现在,我有一个impl模块,其中包含主要方法和设置。这确实会导致一些问题,例如为整个项目构建一个jar,(可能)包含所有模块的巨大依赖列表,以及试图追溯到未来开发人员的主要方法的混乱。

所以我在想:将这种东西放在根项目中是最佳做法,还是应该保留在自己的模块中?将它置于root中是否有任何缺点(例如插件问题)?

2 个答案:

答案 0 :(得分:1)

AFAIK,多模块项目的父模块必须具有“pom”类型,这将阻止将任何代码或其他资源放入其中。

当然,我不会尝试这个。

如果您希望将所有类等组合成一个JAR,还有其他方法可以做到这一点。例如,请查看Maven Shade Plugin

答案 1 :(得分:1)

  

这确实会导致一些问题,例如为整个项目构建一个jar

有解决方案(例如使用专用模块和Maven Assembly Plugin或Maven Shade插件)。

  

(可能)包含所有模块的巨大依赖列表

我不明白你在这里指的是什么。

  

和混乱试图追溯到未来开发人员的主要方法。

如果没有人可以传输信息,请记录下来。

  

所以我在想:将这种东西放在根项目中是最佳做法,还是应该保留在自己的模块中?将它置于root中是否有任何缺点(例如插件问题)?

Stephen是正确的,聚合和/或父POM必须有pom类型的包装,你不能在其中加入任何代码。