问题标签 [multi-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5644 浏览

git - 发布托管在单个 Git 存储库中的多模块 Maven 项目

我正在尝试发布包含在单个 git 存储库中的多模块项目的各个模块。

文件夹结构如下所示:

<modules>父 pom 只是用作构建所有子组件的一种方式,这种方式通过使用标签是有意义的。本质上,构建 api,然后是数据库,然后是核心。

该项目最初托管在 SVN 中,通过简单地在 maven 标签中指向存储库中的不同路径,scm很容易让maven release命令发挥得很好。Git似乎不是这种情况。

运行时mvn release:prepare,它会根据需要对 api pom 进行更改,但在执行mvn release:perform时会尝试构建父 pom,并且由于无法解析 database/pom.xml 中列出的 api-snapshot 依赖项而无法构建数据库包.

我应该如何配置我的 scm 标签才能在 Git 存储库中发布特定模块?这甚至可能吗?

编辑:添加 pom 示例

这是 pom 文件外观的示例设置:

父 pom.xml

api/pom.xml

databasepom 看起来很像,api但依赖于api. 也是如此core,这取决于database(并通过它,取决于api)。

和工件本身很重要,因为api定义了客户端 API 和后端 API,它们都用于与应用程序集成。由此产生了单独发布它们的最初想法——父 pom 只是事后的想法,以允许更简单地构建整个堆栈。databaseapidatabase

0 投票
1 回答
318 浏览

maven - 如何编译和运行多模块 jersey web 服务?

我是 maven 新手,我正在尝试按照本教程创建一个新的多模块 jersey web 服务。所以现在我的项目由 3 个 maven 模块组成:

现在,由于我是 Maven 项目的新手,我不知道如何编译这些模块并运行我的 Web 服务。当我更新这 3 个模块之一时,我应该使用哪些命令?

0 投票
2 回答
3138 浏览

maven - 如何为多模块项目中的特定模块激活 Maven 配置文件

我们有一个由父 POM 和 5 个或更多模块组成的多模块 Maven 项目。

如果我们激活我们的自定义“自动部署”配置文件,每个模块都可以作为构建的一部分部署到正在运行的服务器,该配置文件在每个模块中明确定义,因为每个模块的部署方式/内容略有不同。

但是,当从父 POM 构建时,如果我激活“自动部署”配置文件,Maven 将最终部署所有模块,这几乎不是我们需要做的(基于我们的开发流程等)。但我们确实希望从根目录构建,因为多个模块之间可能存在更改,并且某些模块之间存在依赖关系。

在从父 POM 构建时,有没有办法为其中一个模块而不是所有模块激活我们的自定义“自动部署”配置文件?

谢谢

0 投票
3 回答
225 浏览

maven - 将 JNI 添加到多模块项目中的一些并非所有模块

我的多模块项目包含 10 个模块,其中 3 个需要 3rdparty jni。这三个必须解包 jni 工件并将其位置添加到 LD_LIBRARY_PATH 以进行测试。

处理这种情况的优雅 Maven 方式是什么?

  • 添加依赖,通过maven-dependency-plugin执行surefire属性解包到三个模块(违反dont-repeat-yourself原则,不会扩展)。
  • 在中央 pom 中为这些步骤使用配置文件并使用 needsFooJni 属性激活它(配置文件不是每个模块,应该用于平台或其他构建范围的需求)
  • 使用由顶级 pom 中的属性控制的执行(似乎有点脆弱)。

那么,处理这种情况的优雅 Maven 方法是什么,所以我的本机依赖项用于测试阶段。

谢谢

彼得

0 投票
4 回答
5326 浏览

maven - 为什么以及何时创建多模块 Maven 项目?

我有一个关于 Maven 的多模块项目的一般性问题。何时何地去争取它?

0 投票
1 回答
253 浏览

java - 是否可以在多模块项目中将 ear 模块定义为父模块?

是否可以在多模块项目中将 ear 模块定义为父模块?

我有以下项目结构。

  • Module EAR-1 是 ModuleA 和 ModuleB 的聚合
  • Module EAR-2 是 ModuleA 和 ModuleC 的聚合

他们都应该产生耳朵来部署。

我不想为父模块创建一个虚拟模块。我想将全局依赖项和配置打包到现有项目中。

哪个模块/pom 是放置所有这些一般信息的正确模块。这个 pom 将成为我的父母 pom。

0 投票
1 回答
877 浏览

maven - Maven 多模块项目 + 根 pom 插件

我有一个 maven 多模块项目,为什么我放这个配置时会这样:

在根 pom 和 mvn install 项目中没有生成 rebel.xml 文件。我可以使用 mvn org.zeroturnaround:jrebel-maven-plugin:1.1.3:generate 生成它,但这只会在 target/classes 下创建 rebel.xml 并且不会将其包含在 jar\war 包中。

但是当我将上述配置放在单独的 Maven 模块中时,它会在安装过程中生成它,并根据 process-resources 将其包含在包中

但是我不想在所有模块中复制插件,而只是将它放在根 pom 中,并且在安装过程中应该生成 rebel.xml 文件并包含在包中。

我错过了 Maven 的工作原理吗?

0 投票
1 回答
531 浏览

java - 多模块应用程序maven

我有多模块 maven 项目,其中主项目依赖于子模块。子模块的每个依赖项都由版本定义,如下所示${pom.version}:我使用 Maven 发布插件。如果我尝试准备发布,则会收到关于缺少子模块版本的错误。

例子:

main pom 在版本上1.0,我尝试发布它。Maven 将每个子模块构建为 version 1.1,然后尝试构建父模块,然后崩溃。因为找不到sub-module-1.1

我不知道如何告诉 maven 构建,并立即将它构建的每个子模块安装到 local-repo。我使用maven2。

我的pom:

0 投票
1 回答
3233 浏览

eclipse - Eclipse m2e多模块项目签出并转换为maven

我最近需要检查一个 apache 项目来进行一些事实调查/调试(特别是 maven-surefire-plugin,请参阅这个问题)。与大多数其他 apache 项目一样,这是一个 Maven 多模块项目。因此,在 Eclipse 中,我打开了SVN Repositories浏览器,添加了一个新的存储库,找到了项目和right-click->Checkout.... 在向导中,我单击Checkout as a project in the workspace并输入项目名称。

我有这个项目,现在我需要让 eclipse 知道它是一个 maven 项目,所以right-click->Configure->Convert to Maven Project. 现在父项目是一个maven项目。我可以right-click->Run As->Maven Build并且有效。但是,所有模块都只是文件夹。Eclipse 不知道源代码在哪里,或者即使它有任何源代码。在单个模块项目中,它会自动设置源文件夹、构建文件夹和其他配置。此外,如果您从头开始创建一个多模块项目,则首先创建父项目,然后,当您向其中添加模块时,它们每个都显示为 eclipse 中的单个项目,物理目录位于父项目下默认 maven 构建过程需要的文件夹。

所以现在,知道创建新项目时它是如何完成的,我可以File->New->Project...选择General->Project,为项目命名(我将其与模块名称匹配),取消选中Use default location并设置Location:为父项目文件夹内模块的路径。单击Finish并为每个其他模块重复该过程后,我得到的东西看起来与我期望的相似。我现在需要以与父项目相同的方式将每个单独的模块转换为 maven 模块。太好了,它们都是 maven 项目,对吧?

然后我打开它们,源文件夹没有设置。

啊...然后我转到每个项目,将其打开,然后在src文件夹 I上right-click->Build Path->Use as Source Folder。起泡、冲洗、重复……完成所有项目后,看起来和感觉就像我从头开始这个项目。事物功能。

我的问题是,真的这么难吗?我错过了捷径吗?如果Configure->Convert to Maven Project在父 pom 上意识到这是一个多模块项目并且为我完成了所有工作,这不是很有意义吗?对于 apache 项目来说,这是一个非常痛苦的过程,因为它们似乎都有很多很多模块......有人知道更好的过程吗?

0 投票
0 回答
142 浏览

maven - maven 多模块数据聚合器

我需要开发一个 maven 插件,它基本上必须执行以下操作。

多模块项目结构如下所示,

示例项目

聚合 POM

每个模块中的 review 文件夹都有 XML 文件。现在,插件应该计算这些 XML 中某些条目的数量,并生成包含计数详细信息的文本文件。应该为每个模块生成文本文件,其中包含该特定模块的计数。此外,还应该生成一个包含所有模块总数的文本文件(累积报告)。我得到了这个工作,但插件为所有模块运行一次,然后在根级别运行,它再次扫描所有模块以查找此类 XML。我需要一种方法来从已经可用的每个模块的计数中获取总计数。我不希望这个过程再次发生。我尝试使用@aggregator,但似乎没有帮助。

有没有更好的解决方案?