【发布时间】:2020-08-07 07:53:22
【问题描述】:
我尝试使用 Maven 构建自定义 Jenkins-Plugin。问题来了:
我的项目依赖于org.kohsuke.args4j (https://github.com/kohsuke/args4j)。我在 pom.xml 文件中添加了依赖项。
<dependencies>
<dependency>
<groupId>org.kohsuke.metainf-services</groupId>
<artifactId>metainf-services</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.kohsuke.args4j</groupId>
<artifactId>args4j-maven-plugin</artifactId>
<version>2.33</version>
</dependency>
</dependencies>
问题
显然,这个项目需要 tools.jar 可执行文件 - 无法找到。
[ERROR] Failed to execute goal on project commit-pipeline-xml: Could not resolve dependencies for project com.siemens.plugins:commit-pipeline-xml:hpi:0.1: Could not find artifact jdk:tools:jar:5.0 at specified path /usr/local/java/jdk-14.0.2/../lib/tools.jar
对于我的安装(见下一段),路径是错误的,但我什至在 /usr/local/java/jdk-14.0.2/lib 中找不到 tools.jar /tools.jar 我期望这个文件。 ls -l on $JAVA_HOME/lib 输出一些文件(主要是 *.so),但没有 tools.jar。 find $JAVA_HOME -name "tools" 也没有公开任何内容。
jdk的安装
为了构建我的项目,我使用 docker 和 ubuntu 18.04 作为基础。通过从oracle.com 下载 tar.gz 并使用以下命令安装 jdk:
mkdir -p /usr/local/java
cd /usr/local/java
tar xzvf "$JAVA_JDK_PATH"
ls -l ./jdk-$JAVA_JDK_VERSION/bin
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk-$JAVA_JDK_VERSION/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk-$JAVA_JDK_VERSION/bin/javac" 1
sudo update-alternatives --set javac "/usr/local/java/jdk-$JAVA_JDK_VERSION/bin/javac"
ls -ld /usr/bin/java*
ls -ld /etc/alternatives/java*
$JAVA_JDK_PATH 表示下载的 zip 文件的路径,$JAVA_JDK_VERSION 表示要下载的 jdk 版本。
注意:我假设安装工作正常,因为我通常可以构建其他 maven 项目。
如何安装 jdk 以获取 tools.jar 文件?
【问题讨论】:
-
这并不是一个很好的解决方案,但
tools.jar已从 Java9 的 JDK 中删除:docs.oracle.com/javase/9/migrate/… -
@Hans:我刚刚读到这个post,它也是这么说的。我希望有更好的消息。