英文:
Cannot find 'tools.jar' on ubuntu 18.04 when using maven
问题
我尝试使用Maven构建自定义的Jenkins插件。以下是问题:
我的项目依赖于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的安装
为了构建我的项目,我使用基于Ubuntu 18.04的docker。JDK是通过从oracle.com下载tar.gz文件并使用以下命令安装的:
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文件?
1: https://www.oracle.com/java/technologies/javase-jdk14-downloads.html
英文:
I tried building a custom Jenkins-Plugin using Maven. Here is the issue:
My project depends on org.kohsuke.args4j
(https://github.com/kohsuke/args4j). I've added the dependency in my pom.xml-file.
<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>
The Problem
Apparently, this project requires somehow the tools.jar executable - which cannot be found.
[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
For my installation (see next paragraph) the path is wrong anyways, but I cannot even find tools.jar in /usr/local/java/jdk-14.0.2/lib/tools.jar where I would expect this file. A ls -l on $JAVA_HOME/lib
outputs some files (mostly *.so) but no tools.jar. Also find $JAVA_HOME -name "tools"
exposes nothing.
Installation of the jdk
For building my project the I'm using docker with ubuntu 18.04 as base. The jdk gets installed by downloading the tar.gz from oracle.com and installing it using the commands:
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
denotes the path of the downloaded zip-file and $JAVA_JDK_VERSION
the jdk-version to download.
Note: I assume the installation works, since I can typically build other maven projects.
How to I install the jdk in order to get the tools.jar file?
答案1
得分: 0
这似乎在JDK9之后不再可能,根据@Hans和这个帖子。
已关闭。
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论