构建错误:缺少工件com.sun:工具:jar:1.6

Mic*_*elS 12 java maven playn

我试图构建PlayN示例项目:

Missing artifact com.sun:tools:jar:1.6  pom.xml /playn-cute line 6  Maven Dependency Problem
Run Code Online (Sandbox Code Playgroud)

在每个pom.xml文件上.我该如何解决?

编辑:

我已将配置文件节点添加到pom.xml,但错误仍然存​​在.我已经检查过tools.jar它确实存在,而它没有.所以我已经添加tools.jar到lib文件夹了.仍然存在错误.

完整的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.googlecode.playn</groupId>
        <artifactId>playn-project</artifactId>
        <version>1.0.1</version>
    </parent>

    <artifactId>playn-cute</artifactId>
    <name>PlayN Cute Metaproject</name>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <playn.version>1.0.1</playn.version>
    </properties>

    <modules>
        <module>core</module>
        <module>java</module>
        <module>html</module>
        <!-- <module>flash</module> -->
        <module>android</module>
    </modules>

    <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>
</project>
Run Code Online (Sandbox Code Playgroud)

bma*_*ies 20

此工件始终作为"系统"依赖项处理.它永远不会存储在回购中.

有关详细信息,请参阅http://maven.apache.org/general.html#tools-jar-dependency.

如果没有工具jar,并且你不在Mac上,那么当你的需求是JDK时,你正在尝试使用JRE.您无法通过复制文件将其中一个转换为另一个.

  • 我使用的是 Mac,但是它如何让我的生活变得更好呢? (2认同)

Kan*_*uri 8

在Windows 7中使用Eclipse时遇到了同样的问题,即使我在Eclipse设置中从JRE列表中删除了JRE,并且只是在那里使用了JDK.你的问题没有说明你是否正在使用命令行Maven或Eclipse,所以我想我会在Eclipse中分享为我修复它的内容.

我最不得不做的是修改命令行以获取我用来启动Eclipse的快捷方式,以便像这样添加-vm参数:

-vm "T:\Program Files\Java\jdk1.6.0_26\bin"
Run Code Online (Sandbox Code Playgroud)

当然,则需要调整指向的bin目录你的 JDK安装.这样做是因为Eclipse本身使用JDK而不是JRE运行,然后它能够tools.jar正确地找到它.

  • 这在 Eclipse 的 Maven 项目中对我有用,但要获得全部效果,我必须从上下文菜单中执行 Maven -&gt; Update Project (2认同)

小智 5

在 Eclipse IDE 上看到此错误的原因有很多

  1. Eclipse 指向 JRE 而不是 JDK
  2. JDK 库不包含 tools.jar

为此,您可能希望通过 Preferences -> Java -> Installed JRE ->(选择 JDK,编辑并添加外部 jars -> 导航到 tools.jar)自行添加 tools.jar

  1. 其他原因可能是这个 -> 您项目的父 maven 存储库在其他一些工件下有一个同名的 jar。

您需要通过 -> eclipse 中 pom.xml 的 Dependency Heirarchy 视图找到 tools.jar,一旦找到 jar,您就可以在那里添加排除项

喜欢->

<groupId>com.parent.project</groupId>
    <artifactId>parent-project-dependencies-pom</artifactId>
    <version>${dependencies.version}</version>
        <exclusions>
            <exclusion>
                <groupId>com.sun</groupId>
                <artifactId>tools</artifactId>
            </exclusion>
         </exclusions>
Run Code Online (Sandbox Code Playgroud)