4

假设我有一个多模块 Maven 项目,有两个模块:

  • foo; 需要 Java 1.8 才能编译
  • bar; 需要 Java 11 才能编译

我希望能够通过mvn clean install从父目录运行来构建这些,并让它们使用适当的 Java 版本进行编译。

让我们明确一点:将两者都升级到 Java 11 是不可能的。为什么:

  • 我想将应用程序升级bar到 Java 11 以获得 Java 语言的最新功能和改进。 bar是一个独立的 Spring Boot 应用程序,我能够做到这一点。
  • Applicationfoo是一个 JBoss 部署模块插件。它已插入目前在 Java 8 上的第三方应用程序。我无法将在 Java 11 中编译的模块放入在 Java 8 中运行的应用程序中。

我看到有一种方法可以使用本文所述的maven-toolchains-plugin来执行操作。那可以工作。但是我jenv用来管理版本,并且可以为每个目录设置 Java 版本(使用jenv local)。我想知道是否有办法使用 Jenv 来代替工具链插件。它几乎可以满足我的一切需求;我只需要弄清楚如何让 Maven 从目录中的 jenv 配置文件中读取 Java 版本。

4

0 回答 0