问题标签 [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 投票
0 回答
271 浏览

maven - 跳过根 pom 的插件执行

你能告诉我如何跳过root pom的插件执行吗?这个 pom 只包含定义的模块:

这是bom模块中的插件配置(moduleA和moduleB继承自bom):

当我想为所有使用此命令配置插件的模块执行插件时:mvn com.spotify:dockerfile-maven-plugin:build我收到错误Missing Dockerfile in context directory: /home/denis/workspace/xxxx/root,这意味着插件是通过根 pom 执行的。我不能像在 bom 模块中那样跳过它,因为没有插件配置。谢谢你。

0 投票
0 回答
55 浏览

eclipse - Maven:在父项目构建路径中导入模块依赖项

我正在尝试将旧的 Ant 项目转换为 Maven。该项目有一个庞大的代码库,使用 Ant 目标打包在不同的战争中。它有多个源文件夹,每个战争都是使用这些源文件夹的不同类生成的。代码库应该在不同的子项目中分开,但目前这不是一种选择,因此目标是为一个项目进行多次战争。

我尝试使用 maven 模块,创建一个父 pom 和一个子文件夹maven-modules,其中我有一个 pom 用于我需要生成的每场战争,这是一个例子:

我设法创建了战争,但我的 IDE(Eclipse)无法解析模块中使用的依赖项的导入。那是因为父 pom 没有指定这些依赖项,所以它们没有添加到项目的类路径中。我的问题是:有没有办法在 projectclass 路径中导入模块的 pom 依赖项?

0 投票
1 回答
840 浏览

java - 无法解析基于模块的 Maven 项目的依赖关系

我在构建 Maven 模块时遇到问题。我遵循基于模块的架构,我有一个名为 Bikewale 的父项目,它的子模块名为 Bike-repo、Bike-service 和 Bike-web。当我尝试在 Bike-service 的 pom 文件中添加 Bike-repo 依赖项时,我面临 Maven Build Failure 错误说:

[ERROR] Failed to execute goal on project Bike-service: Could not resolve dependencies for project ab.sp:Bike-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at ab.sp:Bike-repo:jar:0.0.1-SNAPSHOT: Failed to read artifact descriptor for ab.sp:Bike-repo:jar:0.0.1-SNAPSHOT: Could not find artifact ab.sp:Bikewale:pom:0.0.1-SNAPSHOT -> [Help 1]

尽管我在我的 .m2 存储库中检查了 Bike-repo 是否存在,并且它存在于那里。在我以前的项目中,我没有遇到这个问题。.m2 存储库的屏幕截图

自行车回购的 pom.xml

自行车服务的 pom.xml:

我在哪里添加自行车服务的依赖:

0 投票
0 回答
177 浏览

maven - Pitest 报告聚合目标抱怨传递依赖

我根据https://pitest.org/aggregating_tests_across_modules/在一个 Maven 模块项目(Maven 版本 3.5.4)中集成了 Pitest。

当运行mvn clean package日志显示目标模块(即应该执行 Pitest 的模块)的 Pitest 执行时,我确认实际生成了结果文件。

但是,我收到报告模块的以下错误消息:

jackson-databind是目标模块的依赖关系,因此是报告模块的传递依赖关系。在我看来,report-aggregate目标还试图分析启用 Pitest 的模块的传递依赖关系。

项目配置是否有错误?这是一个已知的错误?我能做些什么?

我尝试将reporting模块中target modules的范围改为provided,并且我也将reporting module的packing设置为pom,但无济于事。

配置

我在父 POM 中配置了 Pitest,如下所示:

目标模块 POM 的每个都包含以下部分:

最后报告模块 POM 看起来像这样

0 投票
0 回答
52 浏览

git - GIT中的Maven多模块项目结构

我对 git 中的多模块项目的结构有疑问。

所以我有我的父项目,其中我将模块作为所有子项目。构建,一切正常。

我正在尝试维护类似 spark/nifi 和其他 apache 项目的结构,其中 apache -> spark (pom.xml) -> 模块(与父 spark pom.xml 处于同一级别)

但是当我在 git 中发布我的本地存储库时,结构就像组织 -> 父级(额外文件夹)-> 父级(pom.xml)-> 模块(这应该是一个级别)

在 git 中创建了一个额外的父文件夹,我想要的是父 repo,只是为了拥有 pom.xml 和所有子模块。

有些人可以分享我应该使用的结构吗?

0 投票
0 回答
444 浏览

java - Spring boot maven多模块项目:编译失败找不到符号

我创建了一个带有父 pom 的多模块 spring boot 项目。在模块测试数据中,我添加了一些实体类用户和登录:

用户类:

模块test-data的pom.xml:

测试数据的主要类别:

test-oauth的主要类:

我在第二个模块 test-oauth 中添加了模块 test-data 作为依赖项,如下所示:

进入模块 test-oauth,我使用实体用户:

我得到了这个例外:Compilation failure: Compilation failure: cannot find symbol User, package com.test.core.entities does not exist

我的父母 pom.xml

0 投票
1 回答
32 浏览

java - How to run multi module maven application?

I tried to run my multi module maven application with

The build works without problems and all modules are available in my .m2 repository, but when running the application I get that error:

This isn't the only dependency java can't find, it can't find any dependency. To me it seems that java can`t find my local maven repository. So what am I doing wrong?

0 投票
1 回答
631 浏览

hibernate - quarkus - javax.persistence.AttributeConverter 不在 jandex 索引中

我有一个问题似乎与如何在 Quarkus 中为外部模块中的类创建 Jandex 索引非常相似,我仔细遵循了所有建议的步骤(jandex maven 插件、空 beans.xml、索引其他依赖项)。然而 quarkus 仍然抱怨:

与上述问题的一个明显区别是 quarkus 在我的情况下没有找到第三方类,所以我尝试“索引其他依赖项”。但是,javax.persistence.AttributeConverter 是 maven 模块 javax.persistence-api 的一部分,我不直接依赖它(而是通过对我自己的一个 maven 模块的另一个依赖间接依赖)。所以当我尝试“索引其他依赖项”时

在我的 application.properties quarkus 拒绝

我的想法不多了。有什么我想念的吗?任何想法都受到高度赞赏。

我正在使用 quarkus 1.7.0 版。

编辑 - 这是我使用的一些代码:

实体类

属性转换器类

角色值类

如果我能提供更多相关信息,请告诉我。

0 投票
1 回答
182 浏览

maven - 在一个多模块的maven项目中,我可以制作一个模块来根据另一个模块的DependencyReducedPom计算传递依赖吗?

这似乎是一个简单的问题,但由于 maven 极其严格的生命周期和阶段范式,我发现它很困难:

假设在一个多模块的 maven 项目中,在各个阶段使用了几个插件来将 pom.xml 重写为更有效的版本,值得注意的例子是:

  • maven-shade-plugin(如果<createDependencyReducedPom>启用):当需要发布着色的 uber-jar 时,插件可以摆脱不需要包含的依赖项。始终在包阶段执行。

  • flatten-maven-plugin:允许模块发布的 pom.xml 不再依赖于父级的 pom,方法是将属性引用替换为它们的实际值。可以在任何阶段执行,但为了保持与 maven-shade-plugin 的互操作性,它也仅限于包阶段(请参阅https://issues.apache.org/jira/browse/MSHADE-323

当它们与其他模块结合使用时,maven reactor 构建引擎似乎经常摸索使用哪个版本的重写 pom 来计算传递依赖。理想情况下,应该使用打包阶段之后的最终版本。但是在最新的 maven 版本(3.6.3)中,它只能在重写之前使用 pom.xml,不会减少依赖关系并且所有属性都没有正确替换。

我的问题是:

  1. 这个设计的意义何在?为什么在所有插件都明确替换它时使用半生不熟的 pom.xml?

  2. 如何覆盖此行为,以便始终生成和使用 pom.xml 的最终版本,而不管请求的 maven 目标如何?

更新1:目前我正在使用一个简单的规避方法:

我不是 shell 脚本的忠实拥护者,我认为这背叛了 JVM 社区所珍视的与平台无关的壮举。因此,如果您有更好的解决方案,请在此处发布,我会根据受欢迎程度接受它。

非常感谢您的意见

0 投票
1 回答
96 浏览

java - Maven 对另一个本地项目的依赖:一切正常,但编译器看不到 jar

我在同一个目录中有两个项目,比如说 A 和dirB。B 是其模块 C 的父项目。C 依赖于 A。目录结构:

我使用这种方法创建一个带有模块的项目并显示 C 依赖于 A。这样做之后,Netbeans 开始在 C 中看到 A 的包,例如它显示没有丢失的包,提示在 C 中使用来自 A 的类.如果我把A作为B的一个模块,mvn clean install说maven reactor找到了正确的编译项目顺序,并按照A、B、C的顺序编译。mvn dependency:tree说明groupB:C:jar:0.0.1有一个子节点groupA:A:jar:0.0.1:compile

我不确定 A 是否可以成为 B 的模块,因为 A 有另一个父级(Spring boot)。因此,我尝试了另一种变体:从 B 的模块中删除 A,然后mvn clean install在 A 中,以便(我猜)它产生的 jar 进入本地 repo。这两种变体对于 maven 和 Netbeans 似乎都可以,但对于编译器则不行。在编译过程中,C 看不到 A 的包。

mvn clean install在这三个项目中的任何一个中都做过。C 中的依赖项必须具有 A 的确切属性,否则在 Maven 中会产生依赖项错误。似乎Netbeans的提示机制和Maven都认为A是C的库。只是编译器没有看到。我想我犯了一个新手错误。会是什么?

相关片段pom.xml

A:

B:(我尝试了 A 是 B 的模块的变体,是否被注释掉)

C: