我们在重构期间,由于新系统和旧系统使用的不同jdk版本,新系统1.8,旧系统1.6.

同时为了节省成本,两套环境都部署在一台机器上面,这就出现了新旧系统maven编译的问题。


    我们都知道,maven本身是要依赖jre的,现在的问题就是在同一个环境下,如果让maven兼容不同的编译环境呢?当然同时安装两个maven环境是可以解决的,不过相对成本也比较高。

   下面这里介绍一种方式解决这个问题:

    思路是修改mvn的命令脚本,通过参数来决定不同的编译环境,maven提供了自定义参数-D,那么问题就好办了。

   1、找到/usr/local/maven/bin/mvn 脚本,这个路径由你的maven安装目录决定。

    2、vi mvn 编辑脚本,在脚本开始添加如下判断:

         

result=$(echo "$@" | grep "Djdk8") 


if [[ "$result" != "" ]] 

  then

 JAVA_HOME=/usr/local/java/jdk1.8.0_45

else

 JAVA_HOME=/usr/local/java/jdk1.6.0_45

fi

#上面脚本的意思也就是如果有命令 -Djdk8,那么maven会使用jdk8的环境来编译,否则按照jdk6来编译。


   3、使用方法,如果在jdk8的环境中,使用方法:

          

mvn -Djdk8 clean

mvn -Djdk8  -Ptest compile

mvn -Djdk8  -Ptest install

mvn -Djdk8  deploy



   如果在jdk6的环境,使用方法:

   

mvn  clean

mvn   -Ptest compile

mvn   -Ptest install

mvn   deploy






本文版权归作者,欢迎转载,但未经作者同意必须在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。