一个Maven工程中,不同的模块需要不同的JDK进行编译的解决方案-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章