我继承了一个Spring Boot项目,由于Java 9和10(var
和List.of(...)
)中添加了一些不错的功能,我们希望使用Java 11进行测试。
Maven项目分为几个部分,其中为Java 8设置了生产代码,为Java 11设置了测试代码。这可以在模块基础上单独很好地工作,并且全局构建可以与Java 8一起工作(除了测试无法编译)和Java10。
现在我想使用Java 11从根目录编译所有东西,因为这是LTS(在Windows 10上是Zulu),出于某种原因,Maven现在想引入 org.openjfx:javafx.base:jar:11.0.0-SNAPSHOT
[INFO] Building mumble-data-service-parent 1.0.0-SNAPSHOT
[1/8]
[INFO] --------------------------------[ pom ]---------------------------------
[WARNING] The POM for org.openjfx:javafx.base:jar:11.0.0-SNAPSHOT is missing, no dependency information available
[INFO]
由于不满足依赖关系,我无法(至少不是以我能想到的方式)让Maven告诉我为什么想要这样做,所以我不知道在哪里看,并且该项目似乎没有首先引用javafx(这是一个Spring Boot微服务,这会让我有些惊讶)。因此,这个问题。
是什么原因引起的,如何解决?
如Karol所正确推论的,此问题以前曾见过,解决方法是将休眠验证器依赖项升级到新版本。我所需要做的就是将以下属性添加到我的父pom中:
<!-- needed for building with Java 11 -->
<hibernate-validator.version>6.0.12.Final</hibernate-validator.version>
答案 0 :(得分:9)
如果org.hibernate.validator:hibernate-validator:jar:6.0.11.Final
是依赖项的一部分,则可能由HV-1644 Using Hibernate Validator with Java 11 brings JavaFX on the classpath引起。更新到6.0.12
或更高版本即可解决此问题。
答案 1 :(得分:3)
最近,我在使用带有JDK 11的Maven构建工件时遇到了相同的问题。使用工件org.openjfx:javafx.base:11.0.0-SNAPSHOT
(JavaFX,它不再是Java 11的一部分)被指定了一些依赖性。因此,Maven一直希望下载此工件,实际上,该工件在我们的Maven存储库中不存在。因此,随后的构建以及依赖关系树的分析都失败了。我无法确定将在何处使用此工件。
我搜索了此工件的用法,并在Maven JIRA中发现了有关Hibernate的错误:Dependency resolution broken with Java 11 (MNG-6500)。
据说在Hibernate 6.0.11中,此伪像是在org.hibernate.validator:hibernate-validator:6.0.11.Final
的POM中指定的。但是我不知道在我的项目中有没有使用过这种Hibernate依赖关系。我在整个本地Maven存储库中搜索了此工件。令人惊讶的是,org.glassfish.jersey.ext:jersey-bean-validation:jar:2.28
(在指定了org.glassfish.jersey:project:2.28
版本的父链中有一个父hibernate-validator
)使用了提到的Hibernate构件。而这种依赖关系又被io.confluent:kafka-schema-registry:jar:5.4.0
使用。
因此,我唯一要做的就是从io.confluent:kafka-schema-registry:jar:5.4.0
依赖项中排除此JavaFX工件:
<dependency>
<groupId>io.confluent</groupId>
<artifactId>kafka-schema-registry</artifactId>
<version>5.4.0</version>
<exclusions>
<exclusion>
<groupId>org.openjfx</groupId>
<artifactId>javafx.base</artifactId>
</exclusion>
</exclusions>
</dependency>