Ste*_* S. 10 eclipse maven jboss-arquillian wildfly
将Arquillian添加到Maven构建时,我在Eclipse中获得了上述异常:
缺少神器sun.jdk:jconsole:jar: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>
Run Code Online (Sandbox Code Playgroud)
(消息不是问题,但Eclipse因为它而拒绝编译项目.不过Maven工作.)
当然,我做的第一件事就是尝试将其从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>
Run Code Online (Sandbox Code Playgroud)
没有变化.我尝试用Eclipse启动Eclipse -vm C:\Program Files\Java\jdk1.8.0_60\bin.并尝试在"首选项 - >已安装的JRE"中编辑JDK,以在工具目录中包含JAR.但没有任何作用.
我能做什么?
小智 12
我把我的依赖项放在这样,它工作正常:
<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>
Run Code Online (Sandbox Code Playgroud)
看到排除标记位于"wildfly-embedded"依赖项中......
不要忘记命令"mvn install"并单击项目上的右键和"Maven Update",如果它不起作用,请尝试删除文件夹"〜/ .m2/repository"并再次下载所有依赖项.
小智 5
阿拉斯泰尔,谢谢你解决这个问题.原因在于短暂依赖的pom org.wildfly: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>
Run Code Online (Sandbox Code Playgroud)
实际上,罐子位于${java.home}/lib/jconsole.jar.
PS:版本也不够.所以,我从我的本地maven存储库中删除了这个版本.
也许更多的是一种解决方法而不是正确的解决方案,无论如何,我通过删除 pom.xml 中的配置文件“activebydefault”解决了这个问题。这样,Eclipse 不会抱怨“缺少工件 sun.jdk:jconsole:jar:jdk”,但 JUnit 测试不会在 Eclipse 中运行 - 因为我仅使用来自 Maven 测试的测试,而不是 Eclipse 嵌入式 JUnit 运行程序,它只需要指定您要运行的配置文件 ID。
| 归档时间: |
|
| 查看次数: |
10786 次 |
| 最近记录: |