Maven 3 如何在Maven多模块项目中使用BOM文件?
Java11,Maven 3.8.3 我在pom文件中创建了我的Java Maven项目:Maven 3 如何在Maven多模块项目中使用BOM文件?,maven-3,maven-bom,Maven 3,Maven Bom,Java11,Maven 3.8.3 我在pom文件中创建了我的Java Maven项目: org.springframework spring框架bom表 4.3.8.1发布 聚甲醛 进口 org.apache.commons commons-lang3 朱尼特 朱尼特 ${junit.version} 测试 这是我的班级: import org.apache.commons.lang3.StringUtils; 导入org.slf4j.Logger; 导入org.slf4j.Logger
org.springframework
spring框架bom表
4.3.8.1发布
聚甲醛
进口
org.apache.commons
commons-lang3
朱尼特
朱尼特
${junit.version}
测试
这是我的班级:
import org.apache.commons.lang3.StringUtils;
导入org.slf4j.Logger;
导入org.slf4j.LoggerFactory;
/**
*模块1
*/
公共类应用程序{
私有静态记录器Logger=LoggerFactory.getLogger(App.class);
公共静态void main(字符串[]args){
debug(“Module1,JDK:+System.getProperty(“java.version”);
//使用libcommons-lang3
logger.debug(“lib:commons-lang3:isEmptyString=“+StringUtils.isEmpty”(”);
}
}
但是在mvn安装之后
我得到错误:
[信息]项目扫描…[错误][错误]处理POM时遇到一些问题:
[错误]“org.apache.commons:commons-lang3:jar的dependencies.dependency.version”丢失。@第15行第17栏 如果我打开BOM表文件,它将存在:
2.7.0
3.9
1.6
为什么Maven在BOM文件中找不到正确的commons-lang3.version版本号?我解决了这个问题。
在家长的POM使用中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
org.springframework.boot
spring启动依赖项
2.4.4
聚甲醛
进口
在模块的POM使用中(示例):
com.google.code.gson
格森
朱尼特
朱尼特
测试
正如您所看到的,没有明确设置库的版本号。版本号从BOM表文件中隐式获得
很好 嗯。。?在该bom表中,仅存在与spring相关的依赖项版本。该文件中没有commons-lang3.version条目,请参阅:@eis I修复该问题。看看我的答案。你真的应该先解决这个问题。就目前而言,它不会帮助别人。
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>