先前的eclipse项目改造为maven项目后,在部分开发人员机器上没有问题,我checkout后出现Missing artifact com.sun:tools:jar:jdk-version 1.8,浪费了不少时间查找原因。
命令行编译没有错误,所以应该是与spring tools suit的环境配置相关的问题。
spring boot 项目Missing artifact com.sun:tools:jar:jdk-version 1.8
Failed to execute goal on project [36mde-smServer[m: [1;31mCould not resolve dependencies for project com.yj.de:de-smServer:war:0.0.1: Could not find artifact com.sun:tools:jar:jdk-version at specified path E:\Program Files\java\jre1.8.0_202/../lib/tools.jar[m (org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy-dependencies:default:prepare-package)
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project [36mde-smServer[m: [1;31mCould not resolve dependencies for project com.yj.de:de-smServer:war:0.0.1: Could not find artifact com.sun:tools:jar:jdk-version at specified path E:\Program Files\java\jre1.8.0_202/../lib/tools.jar[m
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:269)
通过pom的依赖层次关系可以找到是哪些模块在依赖tools.jar
网络上参考了几种解决方法,都是需要修改dependency,而且还需要拷贝tools.jar 到mvn仓库,其他同事使用也会不方便。
Buiding Hadoop with Eclipse / Maven - Missing artifact jdk.tools:jdk.tools:jar:1.6
Maven not picking JAVA_HOME correctly
Missing artifact jdk.tools:jdk.tools:jar:1.8的解决方法
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8</version>
</dependency>
拷贝JAVA_HOME/lib/tools.jar 到mvn仓库。
最后因为这些第三方说明提到eclipse 和mave使用的java环境不一致可能导致问题。虽然我只有一个jdk1.8,但是安装jdk时自动也安装了jre,所以通过windows设置,在应用中删除jre,只保留jdk。
不修改pom.xml 也没问题了。