问题标签 [maven-reactor]
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.
maven - Maven如何在reactor中排序模块
像这样的问题被问了一遍又一遍,但不知何故,他们只关注依赖关系。因此,根据 maven文档,构建顺序确定如下。
- 项目依赖于构建中的另一个模块
- 插件声明,其中插件是构建中的另一个模块
- 插件依赖于构建中的另一个模块
- 构建中另一个模块的构建扩展声明
- 元素中声明的顺序
<modules>
(如果没有其他规则适用)
第一条规则很明确,例如,如果模块 A 依赖于模块 B,则首先构建后者。
第五条规则(最后一条)也很清楚。如果前三个规则不适用,我们查看模块部分中的顺序。
其他两个规则对我来说不是那么清楚。英语不是我的母语,但我想知道规则二是否包含某种错字。
我正在寻找一个简单的例子来详细解释这两个规则。
java - 带有单个war文件的Spring Multi Module项目,其中所有模块仅依赖于公共模块
我将现有的spring项目拆分为多模块项目,其中每个模块仅依赖于公共模块并创建一个jar文件,除了最后一个创建war文件的jar文件。
这是项目结构
每个项目都有自己的 spring 上下文。最后一个模块导入它们中的每一个,例如
现在我想创建一个包含所有模块 jar 的单一战争,但没有将每个模块定义为最终战争模块中的依赖项。如果我指定相同,那么开发人员也可以在 war 模块中编写模块特定代码(比如 Jar Mod 1 模块),我想避免这种情况。
现在当我创建war时,它只包含公共模块的jar,因为它在war模块中被指定为依赖项。
所以当我运行这个项目时,它抱怨没有从其他模块中找到 bean,这很明显,因为 war 不包含其他模块的 jar。
maven - maven reactor 项目是否可以包含另一个 reactor 子项目作为模块?
假设有一个带有模块的反应堆项目myproject :
myproject里面还有另一个 reactor 子项目integration-tests。
因此,层次结构如下:
现在,我想与myproject模块一起构建集成测试模块。一种方法是将集成测试模块附加到myproject模块列表中。
但是可以写成:
maven-3 - 如何使用现有的依赖工件打包工件?
我有一个简单的项目,其中包含一些 WAR 工件和一个将其捆绑在一起的 EAR 工件。
如果我mvn package
用那个 pom 运行它就可以了。反应器识别工件,我不必使用本地存储库。
我想分别构建 service1 和 service2 。之后,我想使用 service1 和 service2 的构建结果来构建 ear。
如果我mvn package
只为 ear 运行,它会搜索本地存储库中的工件,它会失败,因为那里不存在。
我如何告诉 ear 插件在其他地方寻找,例如模块本身的目标文件夹?
背景:我想构建每个功能分支,不想弄乱我的本地存储库,也不想为每个分支复制它。
maven - 具有相互依赖关系的多模块 Maven 项目?
我有一个带有子模块的顶级 Maven 项目。第一个子模块是一个 Java 项目,它从编译器的注释处理器生成一些 JavaScript 库代码。我想将这些生成的 JS 文件包含到第二个子模块中,一个 webpack NPM 托管项目,用于构建,然后将 webpack BACK 发布到第一个子模块中,然后再打包到 fat-jar 中。有谁知道实现这一目标的方法?
java - Maven 多模块项目
我正在尝试在结构如下的多模块项目中执行 Maven 构建:
鉴于我已经阅读了有关高级 Reactor 选项的内容,我可以使用以下命令Project-Utils
单独构建项目:
但是,似乎我必须Project-Utils
在我的父 POM 中这样定义:
有什么方法可以使用该--project
选项而无需在父 POM 中定义模块?
maven - 无法运行maven-versions-plugin:set 当父子关系是单向而不是双向时
在 Maven 中,您可以拥有一个父 pom / Reactor,它通过使用父modules
部分来引用子模块,如下所示:
然而,每个孩子都可以自由地指定或不指定它的父母,它仍然会被构建;这意味着,以下配置在 forsimple-weather
和simple-webapp
pom.xml
s 中是可选的:
使用maven-versions-plugin
, 并尝试更新所有子模块的版本时,我发现如果您没有parent
在子 pom.xml 中指定这些孩子。
你知道这是为什么,和/或我该如何解决这个问题?我应该提一下,我确实需要让我的孩子pom.xml
有不同的父母,所以将 Reactor 的 pom.xml 作为他们的父母并不是一个真正的选择(例如,一个模块是一个客户端模块,它继承自公司的pom.xml
客户端标准模块,而另一个是继承自公司服务器模块标准pom.xml
的服务器模块)。
java - 可以期望“mvn compile”与多模块 Maven 反应器构建一起使用吗?
可以mvn compile
预期与多模块 Maven 反应器构建一起使用吗?
我正在尝试开发一个使用反应器/多模块 Maven 构建的项目。当mvn compile
失败*时,熟悉该项目的人告诉我mvn install
需要,而不是mvn compile
,因为它是一个反应堆构建。
虽然 确实有效,因为 Maven 然后可以将构建依赖项从本地存储库中提取出来,但对我来说,我必须mvn install
发布到存储库似乎是错误的,因为这样做会产生问题,尤其是在 CI 环境中。
然而,我能找到的几乎所有围绕多模块项目的示例都使用了mvn clean install
,包括Maven by Example。我没有找到mvn compile
可以归因于多模块项目的示例,这让我倾向于认为这里存在 Maven 限制/要求。
我注意到mvn compile
在 Maven by Example 中提供的示例确实对我有用,但这是一个相对简单的项目,所以我知道我不能认为这意味着它应该可以正常工作。
* 它失败了,因为它找不到在 reactor 构建之前成功构建的依赖项之一。
maven - 在多模块 maven 项目中在反应器和父 pom 之间共享插件版本
我有一个多模块 maven 项目,它带有一个用于构建整个项目的反应器 pom,以及一个所有子模块都继承自的父 pom。
我需要在反应器和父 pom 中都有一个插件,这意味着我在子模块和用于聚合构建的反应器 pom 中分别使用插件。我想在一个文件中管理这个插件的版本,而不是每次都在两个文件中手动更改它。
例子:
项目结构:
--pom.xml //reactor pom - 聚合构建(包含插件)
----parent/pom.xml //父pom - 所有子模块都继承这个pom(包含插件)
---- a/pom.xml //模块a - 继承父/pom.xml
----b/pom.xml //模块b - 继承父/pom.xml
----c/pom.xml //模块c -继承父/pom.xml
注意:父 pom仅由子模块继承。不是通过反应堆。
非常感谢任何帮助,在此先感谢
java - 当子项目之间存在冲突时,为什么maven使用旧版本?
在有一个testA
依赖于 vaadin-client-compiler 的子模块,该 vaadin-client-compiler 依赖于 commons-lang3 3.1 版,它还依赖于另一个testB
依赖于 commons-lang3 3.4 版的子模块。
我希望testA
使用 3.4 版本,因为testB
它依赖于它,但它使用 3.1 版本。我可以通过添加[]
到testB
项目中的版本来解决它,但为什么会这样?为什么 maven 在不被强制的情况下不解析正确的版本?
MCVE:
家长:
依赖的孩子
和受抚养的孩子