Eclipse修改Cucumber项目后出现jaxb-core包POM无效错误如何解决?
JAXB依赖POM无效报错解决思路
The POM for com.sun.xml.bind:jaxb-core:jar:2.2.11 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for com.sun.xml.bind:jaxb-core:2.2.11 [ERROR] 'dependencyManagement.dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${tools.jar} @
- 核对Eclipse运行JDK环境:打开Eclipse菜单
Window > Preferences > Java > Installed JREs,确认当前使用的是完整的Oracle JDK 8安装目录,而非JRE目录。${tools.jar}是Oracle JDK 8内置的组件,JRE、OpenJDK 8部分发行版、JDK 9+版本均不包含该包。如果环境配置错误,选择本机安装的JDK 8设为默认运行环境即可。 - 排除jaxb-core传递的tools.jar依赖:在项目pom.xml的jaxb-core依赖配置中加入exclusion规则,手动移除有问题的tools.jar依赖:
<dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.2.11</version> <exclusions> <exclusion> <groupId>com.sun</groupId> <artifactId>tools</artifactId> </exclusion> </exclusions> </dependency>
- 升级JAXB依赖版本:如果使用的是JDK 9及以上版本,直接将jaxb-core和jaxb-impl的版本升级到2.3.0及以上,该版本已经移除了对tools.jar的依赖,从根源解决报错:
<dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.0</version> </dependency>
- 刷新Maven依赖:修改完成后右键项目,选择
Maven > Update Project,勾选Force Update of Snapshots/Releases后确认,重新构建项目即可。
内容的提问来源于stack exchange,提问作者Raga
相关产品推荐
相关产品推荐

