缺失的构件com.sun:tools:jar:1.5.0 maven。

16
我在我的Web项目中使用Maven,这是我的pom.xml文件的样子。我使用Eclipse Juno和Apache Tomcat 7,在运行Windows XP操作系统。我的tools.jar在"C:\Program Files\Java\jdk1.6.0_23\lib"目录下。我尝试在pom.xml中硬编码它,但它告诉我不能硬编码。我尝试了使用配置文件,但仍然出现错误“Missing artifact com.sun:tools:jar:1.5.0”。请帮帮我,我已经疲惫了一周的谷歌搜索。
    </dependencies>
<profiles>
    <profile>
      <id>default-tools.jar</id>
      <activation>
        <property>
          <name>java.vendor</name>
          <value>Sun Microsystems Inc.</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun</groupId>
          <artifactId>tools</artifactId>
          <version>1.5.0</version>
          <scope>system</scope>
          <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

</project>


 I:\eclipse-jee-juno-RC3-win32\workspace\MYProject>mvn clean install
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MYProject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.594s
[INFO] Finished at: Sat Feb 23 20:49:53 GMT+05:30 2013
[INFO] Final Memory: 3M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project MYProject: Could not resolve dependencies for project MYProject:MYProject:war:0.0.1-SNAPSHOT: Failure to find com.sun:tools:jar:1
.5.0 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
'cmd' is not recognized as an internal or external command,
operable program or batch file.
I:\eclipse-jee-juno-RC3-win32\workspace\MYProject>

1
你发布的日志似乎与你所描述的问题没有关联。在清理阶段中出现了错误。文件Company.hbm.xml可能正在被其他进程使用。 - ben75
@ben75 你说得对,我已经解决了那个问题。现在我遇到了 com.sun:tools:jar 的问题,你可以看一下我已经编辑过的帖子。 - HkFreaKuser1673718
1
你的系统路径看起来有点可疑。我觉得它应该是 ${java.home}/lib/tools.jar。顺便问一下,你的 JAVA_HOME 设置正确吗? - András Tóth
2
请确保您的 ${java.home} 是 C:\Program Files\Java\jdk1.6.0_23\jre。如果您的 java.home 出现问题,您可以尝试在 systemPath 元素中硬编码完整路径:C:\Program Files\Java\jdk1.6.0_23\lib\tools.jar。 - ben75
一个快速的解决方案是将JRE指向JDK文件夹中可用的那个。 - Naveen Raj
8个回答

13

这与maven或pom无关。您试图从eclipse运行maven,因此您需要确保在eclipse中正确配置JDK。我认为在eclipse中提到的JDK版本并非已安装的版本。因此,请更改eclipse并将JRE系统库指向已安装的JDK路径。


2

当我使用Mac编译将使用tools.jar下某些类的项目时,我遇到了相同的错误,但在Linux上一切正常。因此,我显式添加了Maven依赖项,它起作用了。我认为关键点是检查系统路径是否正确。PS:我的JDK版本是1.7。

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

2

如果你是在Mac OS X上进行开发,这是一个已知的问题。根据Mac开发者文库的说法:

tools.jar不存在。通常位于此处的类现在包含在classes.jar中。

这对我在Mac上有效:

<dependency>
    <groupId>com.sun</groupId>
    <artifactId>tools</artifactId>
    <version>${java.version}</version>
    <scope>system</scope>
    <systemPath>${java.home}/../Classes/classes.jar</systemPath>
</dependency>

1
检查是否安装了Java JDK 6而不是JRE 6。 然后检查是否已在Eclipse中正确配置和检查了Java Runtime(首选项-> Java-> 已安装的JRE)。

0
如果在Mac上出现此问题,请“删除依赖项”并尝试。默认情况下,tools.jar将在运行时包含。您只需要为Windows和Linux机器添加此依赖项。
                  <dependency>
                        <groupId>com.sun</groupId>
                        <artifactId>tools</artifactId>
                        <version>1.5.0</version>
                        <scope>system</scope>
                        <systemPath>${java.home}/lib/tools.jar</systemPath>
                    </dependency> 

参考:Maven 参考文档


很抱歉,仅仅删除依赖项并不是一个选项,因为开发人员删除这些依赖项将会破坏其他平台上的其他开发人员构建。 - Roland Tepp

0
请按照以下步骤操作:
在您的pom.xml文件中手动添加tools.jar依赖项。您还可以参考以下链接:http://maven.apache.org/general.html#tools-jar-dependency
<profiles>  
  <profile>  
    <id>default-tools.jar</id>  
    <activation>  
      <property>  
        <name>java.vendor</name>  
        <value>Sun Microsystems Inc.</value>  
      </property>  
    </activation>  
    <dependencies>  
      <dependency>  
        <groupId>com.sun</groupId>  
        <artifactId>tools</artifactId>  
        <version>1.6</version>  
        <scope>system</scope>  
        <systemPath>${java.home}/../lib/tools.jar</systemPath>  
      </dependency>  
    </dependencies>  
  </profile>  
</profiles> 

这里应该填写你的jdk版本,看起来只有1.6。


0

我也遇到了类似的问题,并通过以下方式进行了修复:

在命令提示符中进入安装路径下JDK的lib目录。 执行以下命令安装tools.jar: $mvn install:install-file -DgroupId=sun.jdk -DartifactId=tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar


http://parameshk.blogspot.in


0

你能试试吗?

    <dependency>
      <groupId>com.sun</groupId>
      <artifactId>tools</artifactId>
      <version>1.5.0</version>
    </dependency>

否则,请尝试添加以下信息的新依赖项

组ID:com.sun

工件ID:tools

版本:1.5.0

这对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接