如何解决在指定路径找不到工件 javax.jnlp:jnlp-api:jar:5.0
我将 slick2d 依赖项添加到我的 pom.xml 文件中,但它在文件顶部以红色突出显示了一个错误:Could not find artifact javax.jnlp:jnlp-api:jar:5.0 at specified path
:
<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/xsd/maven-4.0.0.xsd">
即使在 vscode 中运行测试命令后,它仍然给出类似的错误:Could not resolve dependencies for project com.github.shia5347.universalelement:UniversalElement:jar:1.0-SNAPSHOT: Could not find artifact javax.jnlp:jnlp-api:jar:5.0 at specified path /usr/lib/jvm/java-8-openjdk/jre/lib/javaws.jar
。
如果需要,这是我的 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.shia5347.universalelement</groupId>
<artifactId>UniversalElement</artifactId>
<version>1.0-SNAPSHOT</version>
<name>UniversalElement</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slick2d/slick2d-core -->
<dependency>
<groupId>org.slick2d</groupId>
<artifactId>slick2d-core</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle,see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle,jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle,see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
我使用的是 linux。
解决方法
解决问题的简单方法是使用 Oracle JDK。
来自位于 https://github.com/nguillaumin/slick2d-maven 的 slick2d 站点:
- Slick 2D 依赖于 Oracle JDK 附带的 javaws.jar(它在公共 Maven 存储库中不可用)。出于这个原因,pom.xml 文件引用了 javaws.jar 的本地文件系统路径。
- 由于上述原因,它不适用于 OpenJDK(可以通过单独提供 javaws.jar 来解决)。在某些 Linux 发行版上,您可以安装 Netx 并将系统路径更改为指向 netx.jar。例如在 Ubuntu 上,要安装的包是 icedtea-netx-common,jar 位于 /usr/share/icedtea-web/netx.jar
另见此链接 Openjdk and Java webstart
,由于我不喜欢局限于 Oracle JDK,所以我使用以下内容:
<dependency>
<groupId>org.slick2d</groupId>
<artifactId>slick2d-core</artifactId>
<version>1.0.2</version>
<exclusions>
<exclusion>
<groupId>javax.jnlp</groupId>
<artifactId>jnlp-api</artifactId>
</exclusion>
</exclusions>
</dependency>
这将告诉 maven 跳过 jnlp-api 模块。 它还允许我使用 AdaptOpenJDK 和 slick2d。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。