缺少本地存储库中的tools.jar会破坏m2eclipse

wds*_*wds 17 java eclipse m2eclipse maven

我遇到的问题是eclipse无法解决我的项目的任何依赖项.这会导致问题,因为即使依赖关系似乎在编码时工作正常(我得到自动完成),我仍然会得到一个很大的错误列表,指出缺少的工件.

过滤这些时,我发现了以下内容:

容器'Maven Dependencies'引用了不存在的库'/home/[...]/.m2/repository/com/sun/tools/1.5.0/tools-1.5.0.jar'

看起来这个依赖是由struts2引入的,他们的pom中的配置文件如下所示:

<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>1.5.0</version>
    <scope>system</scope>
    <systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)

那个systemPath解析了,所以我没有看到这会导致麻烦的原因.在任何情况下,有没有办法告诉eclipse这个m2eclipse依赖是一个在本地存储库中找不到的系统依赖?

Sam*_*ron 24

我遇到了同样的问题,需要做以下事情

  • eclipse.ini文件中添加-vm path/to/jdk/bin
  • 清理现有工作区并重新加载项目.

它无缝地为我工作.

值得补充的是,在我的eclipse.ini文件中,我必须在文件顶部添加-vm ...行.喜欢

-vm
C:\Program Files\Java\jdk1.6.0_27\bin
... ... ...
Run Code Online (Sandbox Code Playgroud)

确保将-vm选项放在-vmargs之前作为-vmargs直接传递给vm并且选择特定的所有内容取决于-vm选项.


Sas*_*san 9

我有这个问题,但我已经修复了使用以下步骤:

情况1:

Eclipse默认指向JRE,但eclipse maven插件需要JDK才能指向JDK

窗口 - > Preperences - > Java - >已安装的JRE

将其更改为JDK

按照步骤从JRE更改为JDK

  1. 在Eclipse IDE中,转到:Window ... Preferences ...已安装的JRE
  2. 选择默认JRE并单击"编辑".
  3. 单击Add External Jar
  4. 我在"C:\ Program Files\Java\jdk1.6.0_22\lib"中找到了tools.jar并添加了.

现在我可以毫无问题地构建我的项目.这是解决此问题的正确方法吗?


小智 5

我遇到了同样的问题 - Eclipse无法找到tools.jar.我发现原因是Eclipse使用的是JRE而不是JDK.您必须向指向JDK bin目录的eclipse.ini添加-vm参数:
...
-vm
path_to_jdk\bin
...

这应该可以解决问题.


小智 5

从struts依赖项中排除工具jar.

<exclusions>
    <exclusion>
        <groupId>com.sun</groupId>
        <artifactId>tools</artifactId>
    </exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)


Aar*_*lla 0

这种依赖关系应该按预期工作。如果有疑问,请尝试 Maven 的命令行版本,因为 Eclipse 插件在依赖关系解析方面非常脆弱。

与 Eclipse 的其他部分不同,如果 POM 出现问题,它甚至无法为构建创建部分类路径,因此错误可能是其他原因。

如果所有其他方法都失败,请尝试将该文件安装到本地存储库中,以便您可以看到下一个错误。