eclipse或STS運行maven工程出現Missing artifact jdk.tools:jdk.tools:jar:1.7問題
最近項目中使用到大數據平台,代碼中應用了hbase-client.0.98.6-hadoop2.jar包,該包中引用了jdk.tools.1.7,所以導致eclipse中pom.xml老是提示Missing artifact jdk.tools:jdk.tools:jar:1.7。從網上找了一下原因大多都說是工程maven找不到系統內的jdk1.7,根本原因是沒有指定javaw.exe的的位置導致的,具體解決方法有三種,這里我偏向第一種,因為第二和第三種都改改動pom.xml文件,這樣並不好,因為我們再開發中工程代碼有多個人共同開發,你改動pom文件可能會影響別人,所以pom盡量有一個人管理,盡量少帶動別人的代碼。
注意 在使用下面三種方法之前先檢查一下eclipse或STS中的JDK路徑配置是否正確:
首先,通過正常運行eclipse或STS,打開window-->preferences-->java-->installed jres 頁面的窗口
一定要確保這個JDK路徑是你本機的JDK路徑,而不是你本機外的JRE路徑,因為本人再裝jdk的時候,同時裝了一個jre,我打開STS 的時候默認jdk是我的jre路徑,而非我的jdk路徑
如果上面的檢查配置還是不行,則采用下面是三種解決方法解決。
方法一:修改eclipse或STS啟動配置
找到eclipse或STS的安裝路徑,在安裝路徑下找到eclipse.ini或STS.ini,將其文件打開,在文件中找到“-vmargs”,在“-vmargs”之前添加下面代碼
-vm
D:\tools\java\jdk1.7\jre\bin\server\jvm.dll
其中 D:\tools\java\jdk1.7 替換成自己的JAVA_HOME路徑記錄。如圖:
修改之后重啟eclipse或STS即可
方法二:直接在pom.xml中加上一個依賴項目
在pom文件中添加下面配置
<dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.7</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency>
方法三:在pom文件的plugins中指定jdk
在maven工程的pom文件中添加如下配置
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins>