Pom.xml项目构建错误

问题描述 投票:0回答:4

我已经在 Eclipse 中导入了 Maven 项目,但在 pom.xml 中出现以下错误 -

项目构建错误: 'dependencyManagement.dependency.dependency.systemPath' 为 jdk.tools:jdk.tools:jar 必须指定绝对路径,但 ${JAVA_HOME}/lib/tools.jar

我是 Maven 的新手,任何帮助将不胜感激。

java eclipse maven maven-3 pom.xml
4个回答
16
投票

您已指定对

jdk.tools:jdk.tools:jar
的依赖,其中
<systemPath>
${JAVA_HOME}/lib/tools.jar
${JAVA_HOME}
不是有效的 Maven 属性。读取环境变量
JAVA_HOME
的语法是
${env.JAVA_HOME}
。但是,相同的信息会作为名为 java.home
系统属性
公开,因此
${java.home}
是最佳解决方案。


0
投票

这是由于缺少 Maven 属性——

JAVA_HOME
。您可以将其添加到您的 pom.xml

    <properties>
        <!--  your java home  -->
        <JAVA_HOME>/opt/java/jdk1.8.0_202</JAVA_HOME>
    </properties>

0
投票

Sam Hanes 的回答很棒。不过,有两点:

  1. ${java.home} 代表JRE的安装目录,有时与JDK的安装目录不同。并且tools.jar通常位于
    "INSTALLATION_DIRECOTRY_OF_JDK"/lib/tools.jar
  2. 如果您使用
    ${env.JAVA_HOME}
    并且您在 Linux 中,请确保您已正确导出
    JAVA_HOME
    环境变量。你可以在bash中使用
    export
    命令来查看是否有像
    declare -x JAVA_HOME=....
    这样的行。特别是,您应该像这样编写 .bash_profile 或 .bash_rc:
    export JAVA_HOME=THE_DIRECOTRY_OF_YOU_JDK
    export PATH="$JAVA_HOME/bin:$PATH"

而不是

    JAVA_HOME=THE_DIRECOTRY_OF_YOU_JDK
    PATH="$JAVA_HOME/bin:$PATH"

如果您在 .bash_profile 或 .bash_rc 中错过了

export
,您仍然可以在 bash 终端中使用
$JAVA_HOME
。然而,Maven 无法识别
env.JAVA_HOME
的含义。


-4
投票

查找

tools.jar
,应该在
jdk/lib
中,如果不是则意味着下载最新的jdk或将
tools.jar
添加到此位置。这应该可以解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.