当前位置: 首页 > 知识库问答 >
问题:

Maven多模块优于简单依赖

堵毅然
2023-03-14

我有一些年的maven项目的经验,即使是多模块项目(这让我讨厌maven的多模块特性(所以免责声明现在已经完成了)),即使我真的喜欢maven,我也无法得到一个明确的答案:

多模块maven项目的典型用途是什么?与简单的依赖关系和父pom相比,这样的结构有什么附加值?

我已经看到了很多多模块项目的配置,但是所有这些都可以通过创建一个简单的依赖库结构来解决,这些依赖库作为交付品(即使有一个父pom,作为一个单独的交付品:分解差异和配置),我还没有找到任何一个我可以清楚地看到多模块结构的附加价值的用途。

我一直发现,这种结构带来了一种过度杀伤的复杂性,却没有真正的好处:我在哪里遗漏了什么?(老实说,我可以得到一些ear可以从这种结构中受益,但除了特定的用途之外,还有其他真正的用途和好处吗?)

共有1个答案

酆晔
2023-03-14

这是一个真实的案例。

我有一个多模块的项目(和你的咆哮...我没有看到任何复杂的与它。)最终结果是一个webapp,但我有不同的api、impl和webapp模块。

创建项目12个月后,我发现我必须使用从JAR运行的独立流程与AmazonS3集成。我添加了一个依赖于API/IMPL的新模块,并在新模块中编写了集成代码。我使用assembly插件(或类似的东西)创建了一个可运行的jar,现在我有了一个可以部署在tomcat中的war,以及一个可以部署在另一台服务器上的进程。我的S3集成过程中没有web类,我的webapp中也没有Amazon依赖,但我可以共享api和IMPL中的所有内容。

 类似资料:
  • 问题内容: 我有一个多模块项目:父POM.xml: rest-client-microservice的POM.xml如下所示: email-commons模块的POM.xml如下所示: 如果我尝试在父项目上执行,则会得到以下结果: 我已经在这个问题上困扰了好几天,但是我不知道为什么这不起作用。 问题答案: 我想到了。rest-client-microservice是一个Spring Boot项目,

  • 我有一个由多个模块组成的Eclipse Maven项目,其中一些包含我想(使用Jaxb)为其生成类的Xml模式。我的项目布局如下: 包含架构的项目有: 某些模块包含从其他模块导入架构的架构: 由于模式位于不同的项目中,我使用类路径目录解析器和目录文件来解析模式的位置。 automobile项目依赖于types项目中的模式。下面是其目录文件(catalog.xml)中的条目: 请注意使用classp

  • 我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处

  • 我有一个关于Maven依赖解析机制如何在多模块项目中工作的问题。 通常,我只在构建多模块项目时使用“mvn clean install”,我的假设是,如果项目中的任何模块需要以前的模块,依赖关系将通过访问本地存储库并加载相应的“jar”来解决。 由于项目内部原因,我必须使用“mvn清洁编译”,这个命令自然不会创建任何“jar”,而“install”不存在。所以在这里我开始想知道,多模块项目的依赖项

  • 我在Maven中有一个相当简单的带有子模块的项目结构: 在中,我定义了所有子模块的属性,如库版本或插件配置: 直接在节点中设置库版本。 在中设置节点。 尝试不同的库版本。 使用以及库是否存在。 在中运行。 在中运行。 在中运行 在中运行。 在中运行。

  • 问题内容: 我有一个由几个模块组成的项目。 我正在尝试使用SonarQube进行分析。 我在每个模块中都包含了Sonar Maven插件作为依赖项: 然后我使用以下命令运行Maven: mvn clean验证声纳:声纳 Maven成功完成,并且可以看到Sonar分析,但是当我打开Sonar UI时,模块在项目中不可见。 然而… 如果我从单个模块目录运行Maven命令,则在项目中可见。 感觉我缺少一