一个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文件即可。

相关文章
|
6天前
|
Java
JDK环境下利用记事本对java文件进行运行编译
JDK环境下利用记事本对java文件进行运行编译
16 0
|
6天前
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
62 6
【超全详解】Maven工程配置与常见问题解决指南
|
6天前
|
IDE Java 数据库连接
maven篇2:手动创建maven工程
maven篇2:手动创建maven工程
maven篇2:手动创建maven工程
|
6天前
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
16 0
|
6天前
|
Java Maven
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
Maven【2】( Web 工程依赖 Java 工程)(命令行操作)
24 0
|
6天前
|
Java
916.【Java】javap 查看 class 文件的jdk编译版本
916.【Java】javap 查看 class 文件的jdk编译版本
98 2
|
6天前
|
前端开发 IDE Java
JDK 新特性学习笔记之模块系统
JDK 新特性学习笔记之模块系统
|
6天前
|
缓存 Java Maven
Maven找不到依赖终极解决方案
Maven找不到依赖终极解决方案
235 0
|
6天前
|
Java Maven
Maven项目模块打包引入
Maven项目模块打包引入
30 0
|
6天前
|
Java 应用服务中间件 Maven
【Maven从入门到如土】创建 Maven 版的 Web 工程
【Maven从入门到如土】创建 Maven 版的 Web 工程
43 0

热门文章

最新文章

推荐镜像

更多