当前位置: 首页 > 面试题库 >

Maven-用于聚集的“全部”或“父”项目?

锺离德运
2023-03-14
问题内容

出于教育目的,我设置了一个这样的项目布局(为了更好地配合日食,将其布置为扁平状):

-product
 |
 |-parent
 |-core
 |-opt
 |-all

父级包含一个包含核心,优化和全部的汇总项目。Core实现了应用程序的强制性部分。Opt是可选部分。所有人都应该将核心与opt相结合,并将这两个模块列为依赖项。

我现在正在尝试制作以下工件:

  1. product-core.jar
  2. product-core-src.jar
  3. 产品核心与dependencies.jar
  4. product-opt.jar
  5. product-opt-src.jar
  6. product-opt-with-dependencies.jar
  7. product-all.jar
  8. product-all-src.jar
  9. 产品所有依赖项

它们中的大多数都很容易生产。我对聚集的工件确实有一些问题。我设法在“ all”模块中使用自定义程序集描述符制作了product-all-
src.jar,该模块下载了所有非传递性dep的源代码,并且工作正常。该技术还使我能够制作“所有具有dependencies.jar”的产品。

但是我最近发现,您可以使用源插件中的source:aggregate目标来聚合整个聚合项目的源。对于javadoc插件也是如此,它也通过使用父项目进行聚合。

因此,我在使用“全部”模块方法和放弃“全部”模块而只使用“父”模块进行所有聚合之间感到困惑。在“父级”中生成一些聚合的工件,而在“全部”中生成一些聚合的工件,这是不干净的。有没有办法在父项目中制作“全部产品”
jar,或在“全部”项目中聚合javadoc?还是我应该都保留?

谢谢


问题答案:

不再使用扁平树。这是几年前完成的,目的是解决Eclipse如何处理项目以及缺少良好的Maven和Eclipse集成的问题。如果使用m2eclipse将Maven项目导入到Eclipse,则对于maven典型的嵌套树不会有任何问题。

至于如何构造Maven构建的一个很好的例子是什么?Maven项目源本身。它具有您想要的所有零件,包括包装这些捆的最终组装件。

典型的嵌套结构具有自上而下的层次结构,其中父级对其下的模块进行聚合,而子级则从父级继承值。尽管这些有时可能是分开的,但这不是规范。



 类似资料:
  • 我在这里读了很多问题和答案,但我找不到一个能消除我疑虑的aswer。 我有一个用管理的大型Java项目(我们称之为MainProj),它有许多依赖项,其中一些是我和我的团队完成的其他独立项目。 我所做的是为每个相关项目创建一个maven项目,将每个项目安装到我的存储库中,并使用标准的导入导入到MainProj中。 我已经读过superPom(或parent pom)的概念,但我不知道它是如何工作的

  • 有人能给我一个解决方案吗?除了以下例外。我将创建一个多模块项目。 父项目名称为 ,子项目名称为 、 和 。 我需要有的war文件,其中应该包含、和。jar文件。 但是maven必须在父项目中打包。我怎样才能创建这样的项目?

  • 我们在SVN中有以下项目结构,其中父项目(不是聚合器)定义了公共配置。父级被单独管理和释放。 因此,基本上每个实际项目(project1、project2)都被用作其子项目的聚合器。公共配置设置(Java编译器版本、其他插件)保留在父级中,在所有项目(project1,project2)中,父级用作Maven。 我想在父级中定义的设置之一是Subversion的SCM URL,例如父级pom.xm

  • 我正在使用m2e插件在eclipse中开发一个java maven项目。我更新了我的系统和我的jvm从Icedtea-bin-6.1.11.4更新到Icedtea-bin-6.1.11.5。Eclipse现在在我的pom文件中输出下面的错误,我无法运行我的项目。我是maven和eclipse的新手,在搜索了一天之后,我仍然没有找到解决方案。 我个人认为这是eclipse的某种问题(配置错误?),因

  • 我试图添加依赖到我的maven项目。我想添加Spring引导配置。但是它在父标签中给出了这个错误, 项目构建错误: io.javabrains.springbootquickstart的不可解析父POM: Court-api: 0.0.1-SNAPSHOT:未能找到 org.springframework-boot: spall-boot-starter-父: pom: 1.4.2。https:/

  • 问题内容: 我有2个表:, 的结果应为基于中的父项的子项总和。 我尝试了很多次,但无法弄清楚。 问题答案: 使用递归CTE: