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

java - 非启动 spring 项目的 Spring Boot BOM

我想为我的非启动 spring 项目使用 spring boot 特定的 BOM。包含spring-boot-dependenciesplatform-b​​om是否可以接受,什么更好?

或者

谢谢。

0 投票
2 回答
1612 浏览

java - 从多模块项目发布 bom

我们是一家拥有大约 2000 个独立 Java 项目的大公司。由于历史原因,我们没有多模块项目,但我们想介绍它们。

从逻辑上讲,我们已经有项目“组”,即有人负责(比如说)50 个密切相关的项目。这个人定期发布包含这 50 个项目的最新、连贯版本的 BOM。

现在抓住这 50 个项目并将它们放入一个大型的多模块项目中会很有意义。尽管如此,还是有必要发布 BOM,因为其他项目(我们小组之外)应该有一致的版本。

因此,总而言之,我们需要一个 BOM,其中包含作为多模块项目一部分的所有 50 个项目的版本。我想知道创建这样一个 BOM 的“Maven 方式”是什么。我能想到的:

  • bom 是多模块项目的第 51 个项目。依赖项的版本由父 pom 中的属性设置。
  • bom 是从多模块项目中存在的信息生成的,并作为辅助工件发布(这可能需要我们为此编写一个 Maven 插件)。

什么是可取的?

0 投票
1 回答
1236 浏览

maven - 在 Maven BOM(物料清单)中定义依赖范围是一种好习惯吗?

我有一个pom.xml这样的用作 BOM(材料清单)。定义的依赖项之一是*-test用于测试使用此 BOM 中的库的代码的工件。

问题是:指定*-test工件仅test适用于 BOM 本身的范围是否合适/良好做法,或者是否应该留给 BOM 的用户在其项目的 POM 中指定(如果需要)?

我正在研究现有项目是如何做到这一点的,例如,Spring Framework BOM 实际上并没有明确定义任何范围。但我仍然想知道是否有一些不成文的规则或类似的东西?

0 投票
1 回答
213 浏览

java - 在 Maven 物料清单 (BOM) 的单个条目中设置所有 Maven 子模块的版本

我有一个包含多个子模块的库。我已经在父 POM 中设置了库的版本。

另外,我创建了一个 Maven 材料清单 (BOM) 项目,其中定义了这个库。

在第一种情况下,我在 BOM 中设置整个库的版本如下

在第二种情况下,我分别为库的每个子模块设置版本,如下所示

我已将此 BOM 添加到我的项目中。在我的项目中声明没有版本的库子模块时。在上面提到的第一种情况下,我得到一个错误

缺少依赖版本

在第二种情况下,它工作正常。

BOM就是这样工作的吗?我是否必须在我的 BOM 中单独定义所有带有版本的子模块,或者我可以只用版本定义我的库的父 POM,它应该可以工作。如果应该?为什么它在我的情况下不起作用?

0 投票
1 回答
1216 浏览

maven - build.gradle 中的父 pom 用法

我需要将 maven 项目转换为 gradle 项目。一切都很好,但是我面临一个问题,在当前项目中,我们使用依赖管理 throw parent pom of maven 和 gradle,只要我研究过,就不可能这样做。我正在考虑以某种方式将父 pom 转换为 maven bom 并在 build.gradle 中使用,因为我知道 gradle 可以使用 maven bom。

有没有人有更好的想法如何实现?或者可能有人也有这种问题,可以建议最好的方法吗?

问候

0 投票
2 回答
1819 浏览

selenium - 如何在 Spring Boot 中使用较新版本的库

我正在使用 Spring Boot 1.5.9.RELEASE 开发应用程序,并且使用 Gradle 作为构建工具。

我想在项目中使用 SelenumHQ 3.8.1。

在构建项目时,我注意到将 Selenium 2.53.1 添加到项目(不是 3.8.1)中,所以我调查并找出了原因。

我的 build.gradle 中存在以下语句:

并在该文件中 selenium.version 属性设置为“2.53.1”。

所以我将声明更改为

但现在 IDEA 将 3.8.1 和 2.53.1 都显示为项目的依赖项,当我使用 gradle 构建工件时,只存在 2.53.1 依赖项,没有 3.8.1 的迹象。

如何更改此行为并使用 Selenium 3.8.1?

PS Selenium 是由多个 jar 文件组成的,所以它不仅仅是一个 Jar 文件,我想使用 gradle 以最小化的方式更新它们。

0 投票
3 回答
2916 浏览

java - 如何跨多个 Maven 项目管理 Maven Muti 项目中的依赖项

我遇到了maven的情况

这是 bom proejct 仅用于外部 maven 依赖项的依赖项管理。

这个项目只是将一个 pom 文件发布到 maven repo

这个 bom 被导入到通过以下方式开发的不同项目中<dependency Management>

然后我还有一个项目

这是我正在开发的所有应用程序使用的一些常用库。

project-libs-root pom.xml 导入bom-porject pom.xml使用

我这样做是为了访问 bom-project 中定义的依赖项

然后我有另一个maven项目

这是一个应用程序此 application-root pom.xml导入 project-libs-root pom.xml通过<dependencyManagement>.

通过这样做,我可以访问bom-porject pom.xml其中定义的依赖项

内部模块周围令人困惑的部分以及使用它在项目中管理它的依赖例如

假设如果我需要使用module-lib-database来自artifact ofproject-libs-root的artifact ,我应该在哪里提到依赖module-app-dbapplication-rootmodule-lib-database

目前我明确地在<dependecies>标签内调用它module-app-db pom.xml

有什么方法可以定义它并通过标签project-libs-root将其带到应用程序中<dependencyMangement>

0 投票
2 回答
7264 浏览

maven - 如何在 Maven 依赖项中使用 JUnit 5.2 BOM?

根据新发布的JUnit v. 5.2,现在有一个BOM:

JUnit BOM:为了简化使用 Maven 或 Gradle 的依赖关系管理,现在在 org.junit:junit-bom:5.2.0 Maven 坐标下提供了物料清单 POM。

作为起点,目前我的 POM 如下所示:

如果我正确理解了上面的这个 BOM 发行说明,它就是将此 junit<dependency>标记简化为单个 BOM 依赖项。

但是,我在将它集成到我的项目的 pom.xml 中时遇到了严重的麻烦。查看链接资源(https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies)后,我得出结论,我必须用单身的:

但是有了这个,IntelliJ IDEA(v. 2018.1.3 Ultimate x64,Maven v. 3.5.3,目标 JDK 10.0.1)似乎不知道<dependencyManagement>标签是什么,也不解析它的内容。项目结构中未注册任何模块。
但如果我删除<dependencyManagement>标签,IDEA 也不会加载 BOM。
我还尝试使用 maven 插件通过 IDEA 添加 BOM 的 maven 坐标,但是当它找到不同的 junit 包时,它没有找到 BOM 并且无法从 org.junit:junit-bom:5.2.0 下载任何东西

如何将此 BOM 文件添加到我的 pom 依赖项中?
谢谢!

0 投票
1 回答
195 浏览

maven - 在插件配置部分中使用插件进行插件管理

我的 POM 中有以下设置

我在导入jaxb2-basics-annotatejaxb2-basicsBOM 文件的插件管理部分设置版本。但是,这些版本显然不适用,因为当我编译时,我不断收到错误消息,指出这两个插件的版本未设置。那么,插件管理部分是否通常不适用于“嵌套”插件?

0 投票
1 回答
1993 浏览

spring - spring boot parent starter 1.5.10.RELEASE 中的 spring 核心版本更新

这是我拥有的 Maven 依赖项

我想要实现的是,将弹簧芯从 4.3.14.RELEASE 更改为 4.3.4.RELEASE。是的,默认情况下,spring boot starter 使用的是 spring core 4.3.14,它可以扩展到 5.0.7.RELEASE,因为我尝试排除 spring-core 并包括 4.3.4.RELEASE

当我尝试构建它时,会引发以下期望

手动添加每个依赖项是不可能的,因为应用程序使用了大量的依赖项,并且与其他依赖项的兼容性将是另一项艰巨的工作。

那么有什么解决方法吗?

注意:- 尝试使用 spring framework-bom 和 spring IO,但没有找到任何解决方案,也许我错过了一些东西。这些例子是受欢迎的。