Maven和Java多版本模块

介绍

通常,项目具有最低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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鼠标样式设置

<span style"cursor:auto">浏览器设置的光标</span><br /> <span style"cursor:default">默认鼠标箭头</span> <span style"cursor:pointer">一只手的形状</span> <span style"cursor:text&…

如何在linux环境下安装kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch?

在如今多租户模式的数据中心环境下&#xff0c;虚拟化技术正从传统的基于虚拟机管理程序的服务器虚拟化&#xff0c;扩展到网络虚拟化。在这种环境下&#xff0c;基于软件的虚拟交换机通常连同虚拟机管理程序一起部署在服务器上&#xff0c;串联起了不同虚拟机之间传送的流量。…

hanlp中的N最短路径分词

N-最短路径 是中科院分词工具NLPIR进行分词用到的一个重要算法&#xff0c;张华平、刘群老师在论文《基于N-最短路径方法的中文词语粗分模型》中做了比较详细的介绍。该算法算法基本思想很简单&#xff0c;就是给定一待处理字串&#xff0c;根据词典&#xff0c;找出词典中所有…

怎么在ReactNative里面使用Typescript

今天来搞一搞怎么搭建一个可以使用Typescript的ReactNative环境好吧&#xff0c;一句废话不多说&#xff0c;直接开始好吧 1.全局安装create-react-native-app yarn global add create-react-native-app 2.create-react-native-app 你的项目名称 例如&#xff1a;create-r…

如何不使用Java 8默认方法

警告&#xff1a;一旦阅读&#xff0c;您将无法看不到它 我在上一篇博客文章中讨论了默认方法的多重继承&#xff0c;以及它们在编译和运行时的行为。 这周&#xff0c;我将研究如何使用默认方法进行真正的继承&#xff0c;实际上&#xff0c;默认方法并不是为这种方法而设计的…

linux mint 18.3 内核,Linux Mint 18.3 “Sylvia” Cinnamon正式发布上线

Linux Mint创建者Clement Lefebvre今天宣布Linux Mint 18.3 “"Sylvia” Cinnamon和MATE Beta版本正式发布和上线。Linux Mint 18.3基于Ubuntu 16.04 LTS(Xenial Xerus)&#xff0c;搭载Linux Kernel 4.10内核&#xff0c;将持续到2021年获得更新和安全补丁。  Linux Mi…

浏览器兼容问题及解决方案

1.图片间隙 A)div中的图片间隙&#xff08;该bug出现在IE6以及更低版本当中&#xff09; 描述&#xff1a;在div中插入图片时&#xff0c;图片会将div下方撑大三像素 hack1&#xff1a;将</div>和<img>写在一行上 hack2&#xff1a;将<img>转化为块状元素&am…

Java 8星期五:Java 8的阴暗面

在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五&#xff0c;我们都会向您展示一些不错的教程风格的Java 8新功能&#…

SQL,HQL,CQL,JPQL了解

SQL&#xff08;Structured Query Language&#xff09; 是关系数据库查询语言。from后面跟的是“表名”&#xff0c;where后用“表中字段”做条件 HQL&#xff08;Hibernate Query Language&#xff09; 是面向对象的查询&#xff0c;from后面跟的是“表名”&#xff0c;where…

报错集锦

1.在node后端使用express中的multer中间件来实现文件上传时报错 node multer 报错Unexpected field 1 var expressrequire(express); 2 3 var routerexpress.Router(); 4 5 var uploadrequire(...) router.post(/upload,upload.single(fileid)); 原因&&解决&#xff…

shipyard-----------docker容器的可视化管理

shipyard是什么&#xff0c;由题目就可知&#xff0c;是一个对docker进行管理的可视化界面 照此步骤就能完成对shipyard搭建 <ip-of-host>内容要修改成你的docker0的IP地址&#xff0c;不知道的话就ifconfig就好了 如果搭建不成功则是防火墙未开放4001端口&#xff1a;su…

virtualbox怎么共享文件夹 linux,Virtualbox中Ubuntu设置共享文件夹

1、安装增强功能包(Guest Additions)VirtualBox中&#xff0c;选择”设备” -> “安装增强功能”。命令行输入&#xff1a;$ cd /media/VBoxGuestAdditions_4.3.8_RC1$ sudo ./VboxLinuxAdditions.run开始安装工具包&#xff0c;安装完毕后重启虚拟机。2、配置共享文件夹Vir…

Eclipse对Java(TM)8的官方支持

Java开发工具&#xff08;JDT&#xff09;项目的项目负责人Dani Megert今天早些时候宣布了此声明 &#xff1a; Eclipse顶级项目非常自豪地宣布正式支持Java™8。从I20140318-0830开始&#xff0c;所有的Luna&#xff08;4.4&#xff09;构建都包含Eclipse对Java™8的支持。对…

Quartz.net使用笔记

一、需求场景&#xff1a;每天固定时间执行某个行为/动作。 一开始想用定时器&#xff0c;后来无意间发现了这个插件&#xff0c;感觉功能太强大了&#xff0c;完美解决了我的问题。 二、下载地址&#xff1a;https://www.quartz-scheduler.net/ 也可以在项目中直接使用nugut进…

JS里面的懒加载(lazyload)

懒加载技术(简称lazyload)并不是新技术, 它是js程序员对网页性能优化的一种方案.lazyload的核心是按需加载 涉及到图片&#xff0c;falsh资源 , iframe, 网页编辑器(类似FCK)等占用较大带宽&#xff0c;且这些模块暂且不在浏览器可视区内,因此可以使用lazyload在适当的时候加载…

远程拷贝 linux服务器,linux scp 服务器远程拷贝(示例代码)

一、将本机文件复制到远程服务器上#scp /home/administrator/news.txt [email protected]:/etc/squid/home/administrator/ 本地文件的绝对路径news.txt 要复制到服务器上的本地文件root 通过root用户登录到远程…

对偶图小结

前提 通常对偶图建立在平面图之上 平面图&#xff1a;单边除端点外无交点 解决范围 求平面图的最大流 做法 平面图显然在边的基础上分成了若干个块&#xff0c;每个块由一个结点来维护 在边缘出与源点汇点联通&#xff0c;中间处结点之间相互联通 连的边容量为该边穿过原图的边…

将Java 8支持添加到Eclipse Kepler

是否想向开普勒添加Java 8支持&#xff1f; Java 8尚未加入我们的标准下载包中 。 但是您可以将其添加到现有的Eclipse Kepler软件包中。 我有运行Java 8的三种不同的Eclipse安装&#xff1a; 面向Java开发人员的Eclipse IDE的全新Kepler SR2安装&#xff1b; 为RCP / RAP开…

CSS基础【1】:体验CSS

CSS起源 web的衰落&#xff1a;在 web 早期&#xff08;1990-1993&#xff09;,html是一个很局限的语言。几乎完全由用于描述段落&#xff0c;超链接&#xff0c;列表和标题的结构化元素组成。随着万维网的出现&#xff08;用户交互体验的加强&#xff09;&#xff0c;对 html …

JS中的兼容问题总结

今天总结总结在JS里面遇到的兼容性问题 1.获取滚动距离的兼容性问题: document.documentElement.scrollTop || document.body.scrollTop &#xff08;兼容IE&#xff09; 2.获取非行间样式 getComputedStyle(元素,false)[attr] || 元素.currentStyle[attr] 3.索引…