一个Maven工程中,不同的模块需要不同的JDK进行编译的解决方案

简介:

本人在构建数据库分区,分表的时候,由于jdbc3(jdk1.5中实现)和jdbc4(jdk1.6后实现)两个规范上存在相当大的差异,导致无论采用哪个jdk进行编译,都会导致整个pom树无法正确构建,总有一个要出问题。

说实际的这个问题卡了比较长的时候,最后还是研究maven编译插件,才真正解决。

解决的办法就是,在主Pom中定义下面的编译插件:


?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< build >
     [...]
     < plugins >
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
         < artifactId >maven-compiler-plugin</ artifactId >
         < version >3.1</ version >
         < configuration >
           < verbose >true</ verbose >
           < fork >true</ fork >
           < executable >${JDK1.5JAVAC}</ executable >
           < compilerVersion >1.5</ compilerVersion >
         </ configuration >
       </ plugin >
     </ plugins >
     [...]
   </ build >



在dbclusterjdbc4中添加下面的编译插件:



?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< build >
     [...]
     < plugins >
       < plugin >
         < groupId >org.apache.maven.plugins</ groupId >
         < artifactId >maven-compiler-plugin</ artifactId >
         < version >3.1</ version >
         < configuration >
           < verbose >true</ verbose >
           < fork >true</ fork >
           < executable >${JDK1.6JAVAC}</ executable >
           < compilerVersion >1.6</ compilerVersion >
         </ configuration >
       </ plugin >
     </ plugins >
     [...]
   </ build >
然后在settings.xml中定义JDK1.5JAVAC  JDK1.6JAVAC变量,指向两个jdk的javac文件即可。

相关文章
|
4月前
|
Java Maven
Maven编译报错
Maven编译报错
84 1
|
4月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
109 2
|
25天前
|
Java Maven
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
在执行Maven项目中的`install`命令时,遇到编译插件版本不匹配的错误。具体报错为:`maven-compiler-plugin:3.13.0`要求Maven版本至少为3.6.3。解决方案是将Maven版本升级到3.6.3或降低插件版本。本文详细介绍了如何下载、解压并配置Maven 3.6.3,包括环境变量设置和IDEA中的Maven配置,确保项目顺利编译。
1499 4
Maven编译报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile 解决方案
|
3月前
|
Java 编译器 测试技术
全面理解Maven Compiler Plugin-Maven编译插件
【10月更文挑战第16天】
662 1
|
2月前
|
Java 测试技术 项目管理
maven编译本地代码的命令是什么?
【10月更文挑战第26天】maven编译本地代码的命令是什么?
127 0
|
3月前
|
Java 关系型数据库 开发工具
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
本文提供了解决方案,如何在IDEA中创建Spring 2.X版本的项目并使用JDK8,尽管Spring 2.X已停止维护且IDEA不再直接支持,通过修改pom.xml或使用阿里云的国内源来创建项目。
182 0
idea创建不了spring2.X版本,无法使用JDK8,最低支持JDK17 , 如何用idea创建spring2.X版本,使用JDK8解决方案
|
3月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
396 0
|
5月前
|
安全 Java API
JDK版本特性问题之在aone编译机器上未安装相应的jdk导致发布编译报错,如何解决
JDK版本特性问题之在aone编译机器上未安装相应的jdk导致发布编译报错,如何解决
|
6月前
|
Java Maven
maven 工程pom依赖优化及常用命令
maven 工程pom依赖优化及常用命令
90 0
|
6月前
|
Java Maven 编译器
Java编译器注解运行和自动生成代码问题之Maven编译时设置生成的源码的文件夹路径问题如何解决
Java编译器注解运行和自动生成代码问题之Maven编译时设置生成的源码的文件夹路径问题如何解决