介绍

通常,项目具有最低Java版本要求,并且适用于其所有模块。 但是每条规则都有其例外,最近我偶然发现了以下问题。

我的一个开源项目对大多数模块要求使用Java 1.6,除了一个要求1.7版本的项目。

当集成具有与您自己的项目不同的Java要求的外部库时,会发生这种情况。

因为该模块集成了DBCP2框架(至少支持Java 1.7),所以我需要指示Maven使用两个不同的Java编译器。

环境变量

我们需要定义以下环境变量

环境变量名称 环境变量值
JAVA_HOME_6 C:\ Program Files \ Java \ jdk1.6.0_38
JAVA_HOME_7 C:\ Program Files \ Java \ jdk1.7.0_25
JAVA_HOME %JAVA_HOME_6%

pom.xml定义了全局Java版本设置

<properties><jdk.version>6</jdk.version><jdk>${env.JAVA_HOME_6}</jdk>
</properties>

我们需要指示编译器和测试插件使用配置的Java版本。

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${jdk.version}</source><target>${jdk.version}</target><showDeprecation>true</showDeprecation><showWarnings>true</showWarnings><executable>${jdk}/bin/javac</executable><fork>true</fork></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><jvm>${jdk}/bin/java</jvm><forkMode>once</forkMode></configuration></plugin></plugins>
</build>

特定模块

这些模块需要不同的Java版本,只需要覆盖默认设置即可:

<properties><jdk.version>7</jdk.version><jdk>${env.JAVA_HOME_7}</jdk>
</properties>

就是这样,我们现在可以使用其特定的最低Java版本要求构建每个模块。

翻译自: https://www.javacodegeeks.com/2014/04/maven-and-java-multi-version-modules.html

Maven和Java多版本模块相关推荐

  1. Maven 指定 Java 编译版本

    Maven使用的默认Java编译器版本是Java 1.5.为了使Maven使用Java编译器的较新版本编译Java代码,需要在项目的POM文件(pom.xml)中显式指定Java编译器. 指定Java ...

  2. java多模块maven_Maven和Java多版本模块

    java多模块maven 介绍 通常,项目具有最低Java版本要求,并且适用于其所有模块. 但是每条规则都有其例外,最近我偶然发现了以下问题. 我的一个开源项目对大多数模块要求使用Java 1.6,除 ...

  3. 使用maven管理Java项目依赖

    概念 Maven是java的一个依赖管理工具.所谓依赖就是指在Java开发过程中引入的各种jar包和第三方库,而可能这些库本省还要引用其他的库,这样我们直接引用的称为直接依赖,库的依赖称为间接依赖.如 ...

  4. maven pom java版本_Maven更新POM中的JDK版本(比如更新为JDK1.8)

    默认POM如果不指定JDK版本为1.5,而有些项目需要使用泛型这些,就必须使用1.8版本的JDK,所以需要手动修改POM. 打开pom.xml文件修改,增加如下配置节点: [...] [...] or ...

  5. maven项目修改java编译版本的方式

    简述 使用Maven编译Java项目,默认的jdk编译版本是1.5( 参考官网的说明->https://maven.apache.org/plugins/maven-compiler-plugi ...

  6. maven 构建java项目,jdk版本问题

    为什么80%的码农都做不了架构师?>>>    使用maven构建Java项目,默认的 jdk 版本是1.5 详情见官方说明:https://maven.apache.org/plu ...

  7. mvn install java版本,maven的打包命令--assemblyinstall和maven update之后jdk版本变回1.5的问题...

    maven的打包命令–assembly&install和maven update之后jdk版本变回1.5的问题 在进行maven项目打包时,可以有另个命令assembly和install 一. ...

  8. 真正释放Maven和Java EE的强大功能

    如果野心和愿景太复杂而无法使用,那么它们可能会毁灭伟大的解决方案. 尽管Maven和Java EE是在整个Java行业中都已建立的良好技术,但是使用它们并使用其作者希望您使用的所有技术和模式来设计项目 ...

  9. java11 是长期支持_这里有你不得不了解的Java 11版本特性说明

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...

最新文章

  1. java通过ssh读取日志_IDEA+java通过SSH来进行分析日志,实现UI自动化动态验证码登录...
  2. flowable支持的mysql版本_Flowable3-配置
  3. Java黑皮书课后题第5章:5.10(找出能被5和6整除的数)编写程序,显示从100到1000之间所有能被5和6整除的数,每行显示10个。数字之间用一个空格字符隔开
  4. Netty之自定义编码器MessageToMessageEncoder类
  5. Oracle一定有sqlplus吗,oracle sqlplus执行sql文件
  6. UWP 响应键盘组合快捷键
  7. 远程控制工具_不要让您的工具控制您
  8. Java开发Web Service的几种解决方案
  9. openssl 加密解密 指令_Shell openssl命令加密解密字符串
  10. Python 列表List - Python零基础入门教程
  11. ServerAlias指令
  12. 运行gclient一直没反应_IC厌氧反应器的调试-温度影响
  13. SQL面试题(16 - 25)oracle写的
  14. SQL语言入门详细教程(更新中)
  15. MIT 18.01 单变量微积分总结
  16. 显卡测试软件硬盘版怎么安装,显卡检测软件(Alexander)
  17. 【audio】耳机插拔/线控按键识别流程
  18. Mac 自动化执行脚本 Expect
  19. DOS下Debug工具使用
  20. 在kali虚拟机中安装Android模拟器

热门文章

  1. 配置phython环境
  2. springboot 订单重复提交_瞬间几千次的重复提交,我用Spring Boot+Redis扛住了
  3. 南理工计算机博士 年薪_计算机专业的女博士毕业后,进入211大学当讲师,年薪曝光...
  4. centos8上docker tomcat容器访问报404解决方法
  5. 关于 tomcat启动后无法访问的问题(localhost:8080 (or your port specified))
  6. aws 数据库迁移_AWS Loft的数据库周
  7. javax线程池超时结束_没有Javax的Jakarta EE:这次世界也不会结束
  8. java中regex_Java 9中的新Regex功能
  9. mfc 弹簧_弹簧和线程:事务
  10. java解码_Java数组已排序解码