The Problem
Today,after add some dependencies to maven, I found that maven refuses to compile. In Problems view, it shows error:
The container 'Maven Dependencies' references non existing library 'C:\Users\administrator\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
Check my pom.xml, there is no direct dependency of jdk.tools-1.6.jar, then use maven dependency:tree tool to figure out which lib indirectly depends on it.
mvn dependency:tree -Dverbose -Dincludes=jdk.tools
The Solution
Today,after add some dependencies to maven, I found that maven refuses to compile. In Problems view, it shows error:
The container 'Maven Dependencies' references non existing library 'C:\Users\administrator\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar'
Check my pom.xml, there is no direct dependency of jdk.tools-1.6.jar, then use maven dependency:tree tool to figure out which lib indirectly depends on it.
mvn dependency:tree -Dverbose -Dincludes=jdk.tools
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ learningLucene ---
[INFO] org.lifelongprogrammer:learningLucene:jar:1.0
[INFO] \- org.apache.solr:solr-core:jar:4.9.0:compile
[INFO] \- org.apache.hadoop:hadoop-annotations:jar:2.2.0:compile
[INFO] \- jdk.tools:jdk.tools:jar:1.7:system
Turn out, solr-code depends on hadoop-annotation which then need jdk.tools.jar.
The Solution
Google search, find this page:
<dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <scope>system</scope> <systemPath>C:/Program Files/Java/jdk1.8.0/lib/tools.jar</systemPath> <!-- have to include the version, otherwise eclipse throws exception: Errors running builder 'Maven Project Builder' on project 'learningLucene'. java.lang.NullPointerException --> <version>8.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>