包装罐无效 聚合器项目需要 pom 作为包装
我的项目有不同的模块。
- 每个模块都有一个 pom.xml它指定 jar 包装。
- 每个 pom 都是指共同的父项。
- 在父模块中,还有一个pom.xml它包括所有模块。
当我尝试使用父模块的pom.xml打包时,它显示错误 - “打包jar无效聚合器项目需要pom作为打包”。
我该怎么做才能从maven制作应用程序的可执行jar?
我的项目有不同的模块。
当我尝试使用父模块的pom.xml打包时,它显示错误 - “打包jar无效聚合器项目需要pom作为打包”。
我该怎么做才能从maven制作应用程序的可执行jar?
简而言之:如果您的父聚合器项目不包含源代码(这是一种很好的做法),只需将其添加到父 pom 中.xml:
<packaging>pom</packaging>
如果父项目包含源代码,我强烈建议您:
commons
)commons
commons
<packaging>pom</packaging>
Maven 要求父级是 的。packaging
pom
您可以通过包含一堆插件执行并将其附加到其后续生命周期阶段,使项目的行为就像一个项目一样。这不是一条快乐的道路。相反,以下是。pom
jar
从面向对象的角度来看,你想要什么?你有一个对象是由一堆其他对象组成的,对吧?换句话说,组合,而不是继承。
您的最终交付是由其他()项目组成的,即其他项目是最终交付项目的依赖项。您将为每个项目定义其他项目,以便使用最终交付的任何人都知道要获取哪些(可传递的)依赖项。或者,最终的交付可以打包为“uber-jar
”,从而包含其所有依赖项。这实际上取决于如何使用最终交付。jar
dependency
jar
同时以下两个方面(可能)仍然存在:
parent
modules
modules.module