Maven:Missing artifact com.sun:tools:jar:1.8.0
问题描述
导入一个Maven项目的时候,pom.xml报了一个错Missing artifact com.sun:tools:jar:1.8.0,检查其Maven配置,未引入Tools包,build path检查Maven缺少配置
解决办法
虽然tools包是java自带的,但是并不会被maven引入项目,我们手动引入该tools包即可
操作1:在配置eclipse.ini
本项目是在idea上创建的,idea中不报错,且打包发布也一切正常,显然这个错误和代码无关,猜测是eclipse中无法加载到此jar造成的。
可以调整eclipse启动配置eclipse.ini来解决此问题:
-vm
C:\Program Files\Java\jdk1.8.0_131\bin
eclipse.ini配置
-startup
plugins/org.eclipse.equinox.launcher_1.5.300.v20190213-1655.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1000.v20190125-2016
-product
com.primeton.studio.platform.ide
-showsplash
com.primeton.studio.platform
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
C:\Program Files\Java\jdk1.8.0_131\bin
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx4096m
--add-modules=ALL-SYSTEM
-vm 必须要在 -vmargs 之前
操作2:添加pom,引入jar包
<!-- tools -->
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8.0</version>
<scope>system</scope>
<systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
<optional>true</optional>
</dependency>
如上配置,在eclipse.ini中添加-vm参数,指向jdk安装目录中的bin目录,之后重启eclipse,更新maven。
在项目上右键,maven -> Update Project。
若还是不行,在 Update Project 界面中选中Force Update of Snapshots/Releases后,再次更新即可。
到此应该解决了,如果不行,试试以下依赖
<!-- https://mvnrepository.com/artifact/com.sun/tools -->
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.8.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/sun.jdk/tools -->
<dependency>
<groupId>sun.jdk</groupId>
<artifactId>tools</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>