问题标签 [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.
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 模块中那样跳过它,因为没有插件配置。谢谢你。
eclipse - Maven:在父项目构建路径中导入模块依赖项
我正在尝试将旧的 Ant 项目转换为 Maven。该项目有一个庞大的代码库,使用 Ant 目标打包在不同的战争中。它有多个源文件夹,每个战争都是使用这些源文件夹的不同类生成的。代码库应该在不同的子项目中分开,但目前这不是一种选择,因此目标是为一个项目进行多次战争。
我尝试使用 maven 模块,创建一个父 pom 和一个子文件夹maven-modules
,其中我有一个 pom 用于我需要生成的每场战争,这是一个例子:
我设法创建了战争,但我的 IDE(Eclipse)无法解析模块中使用的依赖项的导入。那是因为父 pom 没有指定这些依赖项,所以它们没有添加到项目的类路径中。我的问题是:有没有办法在 projectclass 路径中导入模块的 pom 依赖项?
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 是否存在,并且它存在于那里。在我以前的项目中,我没有遇到这个问题。
自行车回购的 pom.xml:
自行车服务的 pom.xml:
我在哪里添加自行车服务的依赖:
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 看起来像这样
git - GIT中的Maven多模块项目结构
我对 git 中的多模块项目的结构有疑问。
所以我有我的父项目,其中我将模块作为所有子项目。构建,一切正常。
我正在尝试维护类似 spark/nifi 和其他 apache 项目的结构,其中 apache -> spark (pom.xml) -> 模块(与父 spark pom.xml 处于同一级别)
但是当我在 git 中发布我的本地存储库时,结构就像组织 -> 父级(额外文件夹)-> 父级(pom.xml)-> 模块(这应该是一个级别)
在 git 中创建了一个额外的父文件夹,我想要的是父 repo,只是为了拥有 pom.xml 和所有子模块。
有些人可以分享我应该使用的结构吗?
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
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?
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 版。
编辑 - 这是我使用的一些代码:
实体类
属性转换器类
角色值类
如果我能提供更多相关信息,请告诉我。
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,不会减少依赖关系并且所有属性都没有正确替换。
我的问题是:
这个设计的意义何在?为什么在所有插件都明确替换它时使用半生不熟的 pom.xml?
如何覆盖此行为,以便始终生成和使用 pom.xml 的最终版本,而不管请求的 maven 目标如何?
更新1:目前我正在使用一个简单的规避方法:
将第一个模块拆分为一个独立的 maven 项目,在打包阶段调用 maven-shade 和 flatten-maven 插件。(我没有直接证据,但我怀疑这就是重新打包的依赖项(如
spark-project.hive
https://mvnrepository.com/artifact/org.spark-project.hive/hive-common )是如何制作的,请参阅https://issues.apache.org/ jira/browse/SPARK-20202进行相关讨论)使用 shell 脚本依次编译/发布上述项目和主多模块项目。
我不是 shell 脚本的忠实拥护者,我认为这背叛了 JVM 社区所珍视的与平台无关的壮举。因此,如果您有更好的解决方案,请在此处发布,我会根据受欢迎程度接受它。
非常感谢您的意见
java - Maven 对另一个本地项目的依赖:一切正常,但编译器看不到 jar
我在同一个目录中有两个项目,比如说 A 和dir
B。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: