Page 1 of 1

Warum suchen einige Maven-Deps nach der falschen Java-Version?

Posted: 17 Jan 2025, 11:11
by Anonymous
Ich erstelle ein Projekt mit Maven 3.9.9 auf Mac Sequoia und erhalte diese Fehlermeldung:

Code: Select all

...(internal dep chain)...
-> org.glassfish.hk2:hk2-locator:jar:2.4.0-b31 (compile)
=> org.javassist:javassist:jar:3.18.1-GA (compile)
'dependencies.dependency.systemPath' for com.sun:tools:jar refers to a
non-existing file
/opt/homebrew/Cellar/openjdk/23.0.1/libexec/openjdk.jdk/Contents/Home/../lib/tools.jar
Beim Durchsuchen der POM-Dateien für diese Version stimmt der Pfad mit der Abhängigkeitsversion in der Vorlage am Ende der POM-Datei überein.

Code: Select all

${java.home}/../lib/tools.jar
Ich sollte Java 17 ausführen. In der Befehlszeile sehe ich:

Code: Select all

java -version => openjdk version "17.0.12" 2024-07-16
javac -version => javac 17.0.12
Der POM im Projektstamm hat:

Code: Select all

17
Brauen betrachten:

Code: Select all

> brew list
openjdk
openjdk@11
openjdk@17
openjdk@21
und innerhalb von ./openjdk sehe ich:

Code: Select all

/opt/homebrew/Cellar/openjdk/22.0.2
/opt/homebrew/Cellar/openjdk/23
/opt/homebrew/Cellar/openjdk/23.0.1
Openjdk 23 scheint also installiert zu sein.
Beim Versuch, die Zusammenhänge zu verstehen, scheint es, dass dependencies.dependency.systemPath ist eine Systemeigenschaft, die festgelegt wird. Das ist nur meine derzeit beste Vermutung. Ich habe keine Ahnung, warum es auf Java 23 eingestellt ist, und ich weiß nicht, wie ich es ändern oder überprüfen kann.