【发布时间】:2010-10-10 16:25:29
【问题描述】:
我有一个小型(4 模块)maven 项目,其根 pom 位于 pom 包装中。现在,我有一个 impl 模块,其中包含主要方法和设置。这确实会导致一些问题,例如为整个项目构建一个 jar,(可能)包含所有模块的巨大依赖列表,以及试图追溯到未来开发人员的主要方法的混乱。
所以我在想:将这类东西放在根项目中是最佳做法,还是应该留在自己的模块中?将其放入根目录是否有任何缺点(例如插件问题)?
【问题讨论】:
我有一个小型(4 模块)maven 项目,其根 pom 位于 pom 包装中。现在,我有一个 impl 模块,其中包含主要方法和设置。这确实会导致一些问题,例如为整个项目构建一个 jar,(可能)包含所有模块的巨大依赖列表,以及试图追溯到未来开发人员的主要方法的混乱。
所以我在想:将这类东西放在根项目中是最佳做法,还是应该留在自己的模块中?将其放入根目录是否有任何缺点(例如插件问题)?
【问题讨论】:
这确实会导致一些问题,例如为整个项目构建一个 jar
对此有解决方案(例如,使用专用模块和 Maven Assembly 插件或 Maven Shade 插件)。
(可能)包含所有模块的巨大依赖列表,
我不明白你在这里指的是什么。
以及试图追溯到未来开发人员的主要方法的困惑。
如果没有人可以传递信息,只需记录一下即可。
所以我在想:将这类东西放在根项目中是最佳做法,还是应该留在自己的模块中?将其放入根目录是否有任何缺点(例如插件问题)?
Stephen 是正确的,聚合和/或父 POM 必须具有 pom 类型的包装,并且您不能在其中放入任何代码。
【讨论】:
AFAIK,多模块项目的父模块必须具有“pom”类型,这将阻止将任何代码或其他资源放入其中。
当然,我不会尝试这个。
如果您想将所有类等组装到一个 JAR 中,还有其他方法可以做到这一点。例如,看看Maven Shade Plugin。
【讨论】: