问题标签 [maven-bom]

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 回答
5220 浏览

spring - Maven BOM for solving dependencies on Spring + Spring Data + Spring Security?

Spring Data Jpa Docs suggest to use Maven BOM (bill of materials) due to:

Due to different inception dates of individual Spring Data modules, most of them carry different major and minor version numbers. The easiest way to find compatible ones is by relying on the Spring Data Release Train BOM we ship with the compatible versions defined. In a Maven project you’d declare this dependency in the <dependencyManagement/> section of your POM

Reference to official example is provided.

I've got the idea of BOM and dependencyManagement. Vendor officially supply us (developers) with tested/recommended/supported compatibility list. That is great!

In order to move versions synchronously I need some "super-BOM" that governs following BOMs:

How do I choose compatible ones?

Are there SPRING-SUPER-BOM for all umbrella (I mean official or community supported so I save my time by avoiding troubleshooting and if that happen and I have found and have resolved issue - I have an option to get back solution to community)?

0 投票
0 回答
222 浏览

maven - 构建最佳实践以避免 Classloader 泄漏 - OutOfMemoryError: PermGen space

我在这里阅读了一些关于 OutOfMemoryError: PermGen space 的帖子。这里的这个特别注意。处理“java.lang.OutOfMemoryError: PermGen space”错误

此外,同一篇文章还提到了其他网络参考

据我了解,在某些情况下,ClassLoader 泄漏与在 App ClassLoader 中存在类的部署相关联,这些类是从 App ClassLoader 外部引用的。本文中的链接说明了一个示例,即自定义日志级别。

话虽如此,我的疑问是关于构建和依赖管理的最佳实践。我使用 Maven 和物料清单以及依赖分析来检查我是否没有生成超过我需要的包。到目前为止,一切都很好。但我知道有类加载器的优先级。在我的例子中,我使用了使用 UnifiedClassLoader 的 JBoss AS / WildFly。

在这种情况下,我是否应该考虑使用 Maven 和 BOM 构建的 WAR 文件可能具有与 Logger 示例相同的行为?是否仍然建议使用 BOM?

0 投票
1 回答
556 浏览

maven - Wildfly 9.0.2.Final BOM 在哪里?

这构建:

但它没有:

找不到org.wildfly.bom:jboss-javaee-7.0-with-hibernate:9.0.2.Final

在哪里可以找到 Wildfly 9.0.2.Final 的 BOM?

或者如果它不存在,为什么 Wildfly 9 不是那么新?我们已经有了 WildFly 10!

0 投票
6 回答
13509 浏览

maven - 如何查找从 BOM 导入的 Maven 依赖版本声明

多模块父 POM 声明以下 BOM 导入:

然后一个模块 POM 声明一个 Hibernate 依赖项:

如何使用 Maven 命令行或 IntelliJ 找出定义了有效 Hibernate 版本的位置?

mvn dependency:tree针对我的模块运行会产生:

这并不完全有帮助,因为它看起来与我自己管理 Hibernate 版本没有什么不同。如果您必须手动执行此操作,您

  • 从 开始platform-bom-2.0.3.RELEASE.pom,搜索 Hibernate -> nothing
  • 转到它的父级spring-boot-starter-parent-1.3.3.RELEASE.pom,搜索 Hibernate -> nothing
  • 转到它的父级spring-boot-dependencies-1.3.3.RELEASE.pom,搜索 Hibernate -> finally...

但这是多么严峻的考验。当然,您可以检查http://docs.spring.io/platform/docs/current/reference/htmlsingle/#appendix-dependency-versions 但这些信息不是 Maven 应该能够自己找到的吗?

0 投票
0 回答
655 浏览

maven - 如何防止 Maven 发布 SNAPSHOT bom 文件?

BOM 用作依赖项的包含,但似乎仅在包含此 BOM 后才会检查 SNAPSHOT 版本。如果 BOM 中没有提及 SNAPSHOT,则它可以是它自己的 SNAPSHOT 版本。问题是发布后,这个bom的SNAPSHOT并没有发布。

如您所见,此版本已通过 SNAPSHOT bom 发布到 maven Central。

http://search.maven.org/#artifactdetails%7Cnet.openhft%7Cchronicle-bytes%7C1.5.0%7Cbundle

是否有插件来确保 BOM 是发布版本?

虽然在 dependencyManagement 中报告了 SNAPSHOT 依赖项的错误,但这不包括bom导入本身在 SNAPSHOT 上的情况。此外,这些错误已在几年前解决,而此问题发生在最新版本中。


编辑:更新maven-release-plugin到之后,2.5.3我仍然可以使用我们release:prepareSNAPSHOT版本bom

0 投票
3 回答
11205 浏览

java - Maven 是否有办法将依赖版本作为属性获取?

我正在使用 BOM 将依赖项从另一个项目导入到我的项目中,并且我需要一种方法来引用已在所述 BOM 中声明的依赖项版本。到目前为止,我已经尝试将依赖版本作为属性列出在 BOM 中,但是这种方法失败了,因为属性没有随 BOM 一起导入。

我已经看到 Dependency Plugin 的dependency:properties目标几乎完全符合我的需要,但是我没有给我一个工件的完整路径,我需要将版本作为一个属性。有没有什么东西可以给我一个已解决的工件的版本作为属性?

更新 - '为什么不使用父 pom?

我通常发现自己在应用程序服务器环境中工作,其中提供的依赖项是使用 BOM 工件指定的(因为这似乎已成为分发相互关联的工件组的一种常见/标准方式,即widlfly)。因此,我想将 BOM 视为唯一的事实来源。像重新定义已经在 BOM 中定义的依赖版本属性这样的想法似乎是不正确的。

如果我要在反映应用程序服务器环境的父 pom 中定义属性,我现在必须担心保持父 pom 属性和 BOM 属性同步——为什么还要有一个 BOM?

该信息已经在依赖关系树上可用,只是公开它的问题......

0 投票
1 回答
961 浏览

spring-boot - Maven依赖版本冲突:使用Spring数据Neo4j和Spring数据JPA的应用

这是我的 pom.xml 中的依赖项,

和许多其他依赖项

我的应用程序使用内存中的 derby(嵌入式配置文件)/MySQL(远程配置文件)进行事务数据存储,使用 Neo4j 图形数据库处理分层数据存储。我的要求是基于 maven 配置文件在远程和嵌入式模式下运行 Neo4j。默认情况下,spring 版本管理器使用旧版本的 Spring-data-neo4j (3.xx),但嵌入式 Neo4j 支持仅在 4.0.0 版之后可用。当我使用上面显示的配置构建我的应用程序时,我收到如下所示的错误,

我猜这个错误是因为 Spring-data-commons 的版本冲突。有没有办法解决这个错误?

0 投票
1 回答
667 浏览

maven - 有没有办法设置我们跨模块使用的 BOM 版本?

我们有许多使用相同 bom 的模块。

是否有工具可以将它们全部升级到最新(或特定)版本?

有没有办法防止在发布中使用 SNAPSHOT bom?

0 投票
0 回答
455 浏览

maven - 带 bo​​m 的传递依赖

我有一个名为 P1 的项目,它是一个 spring-boot 项目。pom已经有一个父pom,所以我决定用springboot和一个bom。

然后将该项目部署为 P1.jar

然后我有一个名为 P2 的第二个项目。该项目只有 1 个依赖项,即 P1 项目:

这是两个项目的 mvn dependency:tree 的摘录:

P1:

P2:

如您所见,spring-orm 依赖项不同。有人可以解释一下这是如何工作的,我该如何解决?

目前我在我的第二个项目中添加了 BOM。但这不是我的目标。我希望能够导入 P1 项目及其 REAL 依赖项,而无需执行任何其他操作或知道项目正在使用哪个 bom。

0 投票
3 回答
2600 浏览

scala - 如何使用 maven BOM(物料清单)来管理我在 SBT 中的依赖项?

我想在 SBT 中使用外部 BOM 来管理我的项目的依赖版本。

例如,AWS Java SDK 将物料清单工件发布到他们的 maven 存储库:https ://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bom/1.11.86

我可以使用它来管理 AWS 开发工具包中的依赖项版本。在 Maven 中,我可以通过将 BOM 添加到我的<dependencyManagement>部分来做到这一点,如下所示:

然后,当我想使用 BOM 中涵盖的模块时,我可以省略版本,BOM 将为我解决它:

同样在 Gradle 中,我可以使用 BOM 来使用这个插件为我管理依赖项,如下所示:

SBT有类似的插件吗?