当前位置: 首页 > 知识库问答 >
问题:

有没有可能在一个java版本上构建一个maven项目,然后在另一个java版本上运行它?

松国兴
2023-03-14

我是maven项目的新手。我很想知道是否有可能在JAVA 1.8版上构建我的maven项目,并在JAVA 11版上运行它。简单来说,我能在JDK 1.8上编译或构建一个maven项目并在JRE 11上运行它吗?

共有1个答案

费秦迟
2023-03-14

对较新的JDK可以运行较旧的字节码,因此如果您为Java 8编译,通常可以在Java 11上运行它。不过,有时候,在依赖项中更改Java API或支持更新的Java运行时可能需要更改代码。

相反,您也可以使用Maven将编译器配置为输出Java 8字节码,同时在

      <plugin>
        <!-- Configure the compiler. -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <!-- Note that this 'release' parameter was introduced in JDK 9. -->
          <release>8</release>
        </configuration>
      </plugin>

但是您不能做的是使用JDK8编译Java11字节码。如果您想生成Java11字节码并使用Java8之后引入的新的Java功能,只需在开发机器上安装JDK11版本。

正如上面评论中提到的,除非需要针对多个(主要)Java版本,否则在与目标环境相同的主要Java版本上开发和构建通常会更好。Java是向后兼容的,但总有一些怪癖会让你绊倒,如果你的项目中有任何依赖项,你可能会发现,即使这些依赖项在Java 8上运行良好,它们在较新的Java版本中也不总是有效,或者你需要Java 11的较新版本的依赖项,而这些依赖项在Java 8上不起作用。

 类似资料:
  • (该章需加入更多内容。。。原稿写的太简单了)我们同时也加入了一个发行版本, 将会送到客户端: Example 7.14. 多项目构建 - 发行文件 api/build.gradle task dist(type: Zip) { dependsOn spiJar from 'src/dist' into('libs') { from spiJar.archiv

  • 我有一个具有以下结构的maven项目 即Project有它的pom.xml(作为pom的包)并有模块。每个模块都有一个节中,可以将其设置为“project”的工件(在根pom.xml中定义),也可以将其设置为任何其他project2/project3/projectn工件。 现在,由于这个原因,我看看如果Project1的根pom.xml设置为0.0.1-snapshot,并且如果我想创建一个版本

  • 我在自己的本地系统上成功地创建了一个spring启动项目。我想构建一个jar文件,以便在远程服务器上安装它。所以我必须配置远程服务器的服务器地址和mySql地址,但我无法构建,并且有很多错误,它们都是正确的,因为我的系统无法看到远程服务器地址和数据库。 这是我的。属性文件: 如何处理它在其他配置上运行?(另一个IP,数据源和...)我做的对不对?谢啦

  • 问题内容: 在Windows Vista上,我需要一个脚本来启动(以激活virtualenv)脚本: 然后,在虚拟环境中,开始到文件夹中的: 我应该怎么做?我应该使用什么模块? 问题答案: 您可以激活您的virtualenv,然后使用bat文件启动服务器。将此脚本复制到文件中,并以.bat扩展名保存(例如runserver.bat) 然后,您可以运行此bat文件(只需双击)以启动服务器

  • 我有一个使用GCS存储文件来上传文件的案例。我想通过使用代和前提条件()来避免竞争条件。 文件中有关于如何做到这一点的解释。 但是,我使用的是Java API,文档只显示了JSON/XML API。

  • 问题内容: 我想编写一个脚本来自动为修补程序创建功能分支。为此,我需要弄清楚如何查看当前构建中的最后一次提交。 有没有办法从Jenkins API获取最后的提交? 问题答案: 您没有指定要使用的API。但是假设使用Jenkins XML API,它将类似于: