【发布时间】:2019-05-18 23:42:59
【问题描述】:
我继承了一个 Spring Boot 项目,我们希望使用 Java 11 进行测试,因为 Java 9 和 10(var 和 List.of(...))中添加了一些不错的功能。
Maven 项目分为几个部分,其中为 Java 8 设置生产代码,为 Java 11 设置测试代码。这在模块基础上单独运行良好,全局构建适用于 Java 8(除了测试无法编译)和 Java 10。
现在我想使用 Java 11 从根目录编译所有内容,因为这是 LTS(Zulu,因为这是在 Windows 10 上),出于某种原因,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 正确推断的那样,这个问题之前已经出现过,解决方法是将 hibernate 验证器依赖项升级到更新的版本。我所需要的只是将以下属性添加到我的父 pom:
<!-- needed for building with Java 11 -->
<hibernate-validator.version>6.0.12.Final</hibernate-validator.version>
【问题讨论】:
-
如果我被允许,将创建 500 点的赏金。如果在此之前解决了问题,赏金将转到该答案。
-
那么为什么它在 11 上失败了 - 因为在 11 中 java javaFX 不再是 JDK 的一部分,而是独立模块。我认为您可以使用 maven 添加它并检查这是否有帮助。为什么它会丢失 - 它可能是一些传递依赖?你可以分享你的构建文件吗
-
@ThorbjørnRavnAndersen 您必须分享您当前的
mumble-data-service-parent模块pom.xml的样子。这就是人们可以开始寻找原因的地方。此外,如果它有一个parent,那可能会带来一些与依赖管理一起的东西。或者可能是指向项目/MCVE 的链接以重现您刚才所说的错误会进一步改善问题。 -
不幸的是,Stackoverflow 不允许我将 help:effective-pom 的输出附加到问题中:-/
标签: java maven javafx java-11 azul-zulu