问题标签 [maven-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 回答
5598 浏览

maven - 如何从 Maven 反应器构建中排除模块及其子模块?

这个问题被问了很多次,但我没有找到解决方案,如何禁用模块的子模块!?!

例如:我想禁用项目 BB 和 CC 以及它们的子模块

但是当我运行这个

我看到 BBB 和 CCC 也被执行了。这只是一个示例。我们有一个包含大约一百个项目的多模块项目......所以我不想列出所有项目,只列出父母。这可能吗?

谢谢

0 投票
2 回答
907 浏览

java - 将 GWT-Project 转换为多模块项目

我正在尝试将一个工作的单个 GWT 项目转换为几个 Maven 模块。新结构应如下所示:

我的文件看起来像这样(许多依赖项,我想我删除了不必要的内容以使我的问题更清楚)项目 pom.xml:

项目-Common pom.xml:

项目战争 pom.xml:

旧项目在我的 Project-War 中,我添加了 Project & Project-Common。在此设置中,项目构建,我得到“新的” Project-War.war 。但是,当我将 ErrorCode.java 从 Project-War 移动到 Project-Common 时,出现以下错误:

[INFO] 跟踪类型“com.project.modules.TestViewImpl”的编译失败路径 [INFO] [错误] '.../project/project-war/src/main/java/com/project/modules/TestViewImpl 中的错误.java' [INFO] [ERROR] Line 20: No source code is available for type com.project.errorcodes.ErrorCode; 你忘了继承一个必需的模块吗?[INFO] [ERROR] 提示:检查模块的继承链;它可能没有继承所需的模块,或者模块可能没有正确添加其源路径条目

0 投票
1 回答
27 浏览

java - 如何将配置文件应用于 Maven 模块

如何在 Maven 模块中设置配置文件?

这似乎是一件简单的事情,但我不知道如何去做。我有一个带有模块的 pom。对于某些构建,我希望一个模块在不同的配置文件下运行。

我不介意将配置文件传递给所有模块,但它注定要用于一个模块。只是将它设置在对父模块的调用中,似乎并没有这样做。

0 投票
1 回答
13674 浏览

maven - Jenkins 构建一个由许多 Maven 项目组成的产品?(使用 Jenkins Pipeline 插件?)

我们的产品由许多相互依赖的 Maven 项目组成。所有这些 Maven 项目都在一个交付最终产品的项目中组合在一起。

Maven 项目共享相同的生命周期。换句话说,它们不是由单独的团队管理,这些团队通过明确的<dependency>更改来获取其他项目的更新版本。相反,当有人在其中一个项目中更改某些内容时,结果应该直接进入最终产品而无需额外更改。

我们使用 Jenkins 作为我们的持续集成工具。

我们的主要愿望如下:

  • 无需将所有项目间依赖项复制到 Jenkins 配置:这些应该在一个地方,最好是pom.xml文件。
  • 避免不必要的构建:在 SCM 更改时,仅构建可能受到影响的项目。
  • 菱形依赖关系的情况下(C 依赖于 B1 和 B2,它们都依赖于 A),如果最低的 (A) 发生了变化,那么最终产品 (C) 应该始终使用也用于构建的 A 的版本/测试 B1 和 B2。

问题:使用 Jenkins 执行此操作的最佳方法是什么?

我们目前正在考虑使用 Jenkins Pipeline 插件使用单个作业,该插件分析 Maven 依赖项和 SCM 更改,决定需要构建的内容和顺序,然后实际构建项目。

0 投票
3 回答
12688 浏览

java - 如何使用 Spring Boot 测试 Maven 模块项目

我已经将一个基于 Spring Boot 的项目拆分为几个 Maven 模块。现在只有 war-project 包含一个 starter 类(有一个 main 方法,启动 Spring),其他模块是 jar 类型。

如果 jar 项目不包含启动器,我该如何测试它们?

示例 JUnit 测试用例标头:

0 投票
2 回答
3507 浏览

spring-boot - Spring Boot 测试多模块 Maven 应用程序

我有一个使用 Spring Boot 的多模块 Maven 应用程序:

在我的 module-it 中,我将其他模块添加到我的依赖项中,并按如下方式配置 maven-failsafe-plugin:

当我使用 Maven 构建项目时,我得到“构建成功”:

到目前为止,一切都很好。
然而,我希望我的每个模块在构建结束时都是一个可执行的 jar。使用上述设置,清单未定义且 jar 不可执行。为了解决这个问题,我在我的 module1 和 module2 pom 文件中添加了以下内容:

使用此设置,我的 jar 文件是可执行的,但我无法再构建。我在我的模块中使用的类没有找到。

我的测试具有以下形式(HelloControllerIT.java 的同上):

并且控制器具有这种形式(getStr() 方法仅用于测试配置):

你能帮我理解为什么 spring-boot-maven-plugin 使我的构建失败以及我该如何解决这个问题?

我知道:

  • 我的测试现在不是集成测试。这只是一个例子;
  • 根据我在stackoverflow上找到的答案,我可以添加一个文件,如下面的文件,然后使用@ContextConfiguration,但我试过了,它不会改变Maven构建的输出。

在此先感谢您的帮助。

0 投票
1 回答
3106 浏览

maven - Maven如何在reactor中排序模块

像这样的问题被问了一遍又一遍,但不知何故,他们只关注依赖关系。因此,根据 maven文档,构建顺序确定如下。

  • 项目依赖于构建中的另一个模块
  • 插件声明,其中插件是构建中的另一个模块
  • 插件依赖于构建中的另一个模块
  • 构建中另一个模块的构建扩展声明
  • 元素中声明的顺序<modules>(如果没有其他规则适用)

第一条规则很明确,例如,如果模块 A 依赖于模块 B,则首先构建后者。

第五条规则(最后一条)也很清楚。如果前三个规则不适用,我们查看模块部分中的顺序。

其他两个规则对我来说不是那么清楚。英语不是我的母语,但我想知道规则二是否包含某种错字。

我正在寻找一个简单的例子来详细解释这两个规则。

0 投票
1 回答
444 浏览

java - Maven 相同的聚合器和父级(相同的 pom)。独立子模块版本

我开始阅读与多模块 maven 项目相关的良好实践,特别是关于使用单独的 pom 聚合器和父级的建议。我发现这个网站包含以下段落:

您可以在模块 POM 示例中看到它从父 POM 继承其版本。这对于中小型项目来说是很自然的。团队为下一个版本对每个模块进行代码更改。

您可以为您的模块使用不同的版本,但这不会让您走得太远。如果您通过其聚合父 POM 发布项目,则所有模块都将发布,以及它们各自的版本。这很好——起初是这样想的。如果您仔细观察,您会注意到版本会增加,即使某些模块根本没有任何更改。使用这种方法,让一个多模块聚合父 POM 为每个子模块使用不同的版本,您只能灵活地决定新版本是 major、minor 还是 micro。但这值得努力吗?

据我所知,当您运行发布插件时,它会询问每个子模块的新版本。如果没有对特定子模块进行更改,您可以决定不修改其版本。

作者是什么意思?

0 投票
0 回答
306 浏览

java - 跳过多模块 Maven 项目中的单元测试

场景:多模块Maven项目

问题:单元测试仅针对单个模块运行。

背景:我试图将我的集成测试与单元测试分开。为此,我在父 pom 中创建了两个属性,Root-module,默认情况下禁用单元测试和集成测试。

在我最顶层的模块UI-module中,我创建了两个配置文件devintegration-testDev启用了单元测试,并且integration-test启用了集成:

集成测试工作正常。dev配置文件仅运行UI-module的单元测试,这是包含这些配置文件的 pom.xml 所在的位置。

如何为所有模块启用单元测试?配置文件方法是否正确?如果是这样,为什么该值不应用于其他模块?

0 投票
2 回答
7709 浏览

java - Maven循环依赖

我的 Maven 项目有多个 Maven 模块。其中两个模块(产品和功能)相互依赖。当我将模块作为依赖项包含在 pom 文件中时,一个 ! 标记出现在模块上。在运行 maven install 时出现此错误。

如果不添加依赖项,产品将无法访问功能模块中定义的功能,反之亦然。

父 pom.xml

产品模块 pom.xml

功能模块 pom.xml