2015-10-20 42 views
7

當添加的Arquillian到Maven構建我得到在Eclipse上面的例外:缺少神器 「sun.jdk:JConsole的:罈子:JDK」

缺少神器sun.jdk:JConsole的:罈子:JDK

<dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <version>1.1.7.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.arquillian.extension</groupId> 
     <artifactId>arquillian-persistence-dbunit</artifactId> 
     <version>1.0.0.Alpha7</version> 
    </dependency> 

(該消息是沒有問題的,但Eclipse的拒絕編譯,因爲它的項目。Maven的工作的。)

當然,我做的第一件事是想exclud從Maven依賴Ë它(wildfly-arquillian-container-managed就是依賴樹國的依賴來自於):

<dependency> 
     <groupId>org.wildfly</groupId> 
     <artifactId>wildfly-arquillian-container-managed</artifactId> 
     <exclusions> 
      <exclusion> 
       <artifactId>jconsole</artifactId> 
       <groupId>sun.jdk</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

有沒有變化。我試圖用-vm C:\Program Files\Java\jdk1.8.0_60\bin啓動Eclipse。並嘗試在「首選項 - >已安裝的JRE」中編輯JDK以在工具目錄中包含JAR。但沒有任何工作。

我該怎麼辦?

+0

我認爲你的版本是錯誤的。沒有「arquillian-junit-container」或「arquillian-persistence-dbunit」的'8.2.0.Final'版本。 –

+0

@ JamesR.Perkins是的,你是對的,我從父母的_pom.xml_複製了錯誤的版本。 –

+0

同樣的問題在這裏回答: [用Maven依賴關係構建路徑問題(jconsole-jdk.jar)](http://stackoverflow.com/questions/25362127/build-path-issue-with-maven-dependencies-jconsole -jdk-jar) – zsizsik

回答

0

也許是一個比解決方案更多的解決方法,無論如何我通過刪除pom中的配置文件「activebydefault」來解決這個問題。這樣,Eclipse不會抱怨「缺少工件sun.jdk:jconsole:jar:jdk」,但JUnit測試不會在Eclipse中運行 - 因爲我僅使用maven測試進行測試,而不是Eclipse嵌入式JUnit運行器,它只需要指定要運行哪個配置文件ID。

1

我花了一天的最好的時間來解決這個問題。簡單的解決方案是使用maven手動安裝缺少的jdk jar,如下所示:

c:\ workspace \ prism> mvn install:install-file -Dfile = C:\ java \ jdk \ lib \ jconsole.jar -DgroupId = sun.jdk -DartifactId = jconsole -Dversion = 1.8 -Dpackaging = war。

誰知道爲什麼日食不能做到這一點...

7

我把我的依賴這樣的,它工作正常:

<dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.wildfly</groupId> 
     <artifactId>wildfly-arquillian-container-embedded</artifactId> 
     <version>8.1.0.CR1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.15</version> 
     <scope>test</scope> 
    </dependency> 
    <!-- Arquillian --> 

    <dependency> 
     <groupId>org.wildfly</groupId> 
     <artifactId>wildfly-embedded</artifactId> 
     <version>8.1.0.CR1</version> 
     <exclusions> 
      <exclusion> 
       <groupId>sun.jdk</groupId> 
       <artifactId>jconsole</artifactId> 
      </exclusion> 
     </exclusions> 
     <scope>test</scope> 
    </dependency> 

請參閱排除標籤是在「wildfly嵌入」依賴...

不要忘記命令「mvn install」,然後在項目和「Maven Update」中單擊右鍵,如果它不起作用,請嘗試刪除文件夾「〜/ .m2/repository」並下載所有再次依賴。

+0

它對我有用@Mateus Pegoraro – ffSouza

3

Alastair,thx爲解決問題。原因在於瞬態依賴org.wildfly的pom:wildfly-cli(8.2.0.Final)。在那裏,你可以找到以下的依賴聲明:

<dependency> 
      <groupId>sun.jdk</groupId> 
      <artifactId>jconsole</artifactId> 
      <version>jdk</version> 
      <scope>system</scope> 
      <systemPath>${java.home}/../lib/jconsole.jar</systemPath> 
</dependency> 

其實,瓶子位於$ {java.home} /lib/jconsole.jar。離幸運只有兩點:-)

P.S .:版本也不夠。所以,我從我的本地Maven倉庫中刪除了這個版本。

1

我在Windows機器上工作時遇到了這個問題。該項目本身在我的Ubuntu機器中工作得很好。然而,該項目的構建失敗,正是由於短暫的org.wildfly:wildfly-ejb依賴性導致的。

缺少神器sun.jdk:JConsole的:罈子:JDK

我不覺得需要的項目配置,它應該只是在所有環境,因此在Windows環境下工作的優良改變本身一定是錯的。我首先想到的是,Eclipse本身以某種方式使用JRE而不是JDK。

所以我在CMD籤java -version,它似乎指向/Program Files文件夾中安裝的地方,而我一直都手動安裝的JDK中/Java文件夾中的JRE。然後我檢查了Windows設置中的%PATH%環境變量。它似乎包括一個/ProgramData/Oracle/Java/javapath。該文件夾包含幾個符號連接到/Program Files文件夾中的JRE。這實際上被用來啓動Eclipse並運行其所有任務。當我刪除它(在%PATH%設置中已經有一個JDK/bin進一步下降)並重新啓動Eclipse並重新執行Maven構建時,錯誤消失。

無需對pom.xml或Eclipse配置進行更改。只要注意Windows的所有安裝和更新,並檢查您的%PATH%是否仍然有JDK。

+0

我在Eclipse中編譯WildFly時出現同樣的問題。 –

2

問題的原因是jconsole.jar是jdk的一部分,因此它不是作爲普通的maven包分發的。

通常,項目pom.xml將此jconsole.jar作爲系統包插入,即它甚至不嘗試從中央Maven回購站下載它們。儘管這樣也可以分發它。

問題的最簡單的解決方案是使用包含此jconsole.jar的jdk。

或者,您可以從任何地方下載此jar,只有您必須在編譯類路徑中使其可訪問。

或者,您也可以修改pom.xml,或者手動將軟件包安裝到您本地的maven倉庫中,如同其他答案狀態一樣。

相關問題