带有jdk17的maven反应器中的传递依赖关系



我正在将一个大型应用程序升级到JDK17。今天,这个项目用JDK11和maven编译得很好。

对于JDK17,我在传递依赖的版本方面遇到了一个非常奇怪的问题。

本项目由多个子模块组成。如果我直接编译一个模块,它工作得很好。

然而,如果我编译根模块或任何包含子模块的模块,传递依赖关系的解析就不起作用。我有如下错误:

[INFO] -------------------------------[ bundle ]-------------------------------
Downloading from internal-repository: http://srv:8080/nexus/content/groups/public/org/apache/camel/camel-netty4/$%7Bproject.version%7D/camel-netty4-$%7Bproject.version%7D.pom
[WARNING] The POM for org.apache.camel:camel-netty4:jar:${project.version} is missing, no dependency information available
Downloading from internal-repository: http://srv:8080/nexus/content/groups/public/org/apache/camel/camel-netty4/$%7Bproject.version%7D/camel-netty4-$%7Bproject.version%7D.jar

依赖项的版本是${project.version},而不是实际版本。该项目不直接使用camel-netty4,而是使用camel-syslog:

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-syslog</artifactId>
<version>${camel.version}</version>
</dependency>

这只是一个例子,其他项目由于其他可传递依赖关系而失败。如果我直接编译子模块,它就会起作用。

Maven 3.6.3

我使用的是"Eclipse Adoptium-Temurin-17+35";通过切换到官方的OpenJDK,我无法重现这个问题。

这个JDK在我的情况下不起作用,有关于插值问题的随机错误

IMPLEMENTOR="Eclipse Adoptium"
IMPLEMENTOR_VERSION="Temurin-17+35"
JAVA_VERSION="17"
JAVA_VERSION_DATE="2021-09-14"
FULL_VERSION="17+35"
SEMANTIC_VERSION="17+35"
BUILD_INFO="OS: Windows Server 2012 R2 Version: 6.3"
JVM_VARIANT="Hotspot"
JVM_VERSION="17+35"
IMAGE_TYPE="JDK"

这个每次都有效:

IMPLEMENTOR="Oracle Corporation"
JAVA_VERSION="17.0.1"
JAVA_VERSION_DATE="2021-10-19"
LIBC="default"
MODULES="java.base java.compiler java.datatransfer java.xml java.prefs java.desktop java.instrument java.logging java.management java.security.sasl java.naming java.rmi java.management.rmi java.net.http java.scripting java.security.jgss java.transaction.xa java.sql java.sql.rowset java.xml.crypto java.se java.smartcardio jdk.accessibility jdk.internal.jvmstat jdk.attach jdk.charsets jdk.compiler jdk.crypto.ec jdk.crypto.cryptoki jdk.crypto.mscapi jdk.dynalink jdk.internal.ed jdk.editpad jdk.hotspot.agent jdk.httpserver jdk.incubator.foreign jdk.incubator.vector jdk.internal.le jdk.internal.opt jdk.internal.vm.ci jdk.internal.vm.compiler jdk.internal.vm.compiler.management jdk.jartool jdk.javadoc jdk.jcmd jdk.management jdk.management.agent jdk.jconsole jdk.jdeps jdk.jdwp.agent jdk.jdi jdk.jfr jdk.jlink jdk.jpackage jdk.jshell jdk.jsobject jdk.jstatd jdk.localedata jdk.management.jfr jdk.naming.dns jdk.naming.rmi jdk.net jdk.nio.mapmode jdk.random jdk.sctp jdk.security.auth jdk.security.jgss jdk.unsupported jdk.unsupported.desktop jdk.xml.dom jdk.zipfs"
OS_ARCH="x86_64"
OS_NAME="Windows"
SOURCE=".:git:75240a5872a1"

最新更新