问题原因:目前使用的测试环境默认的 JDK 的版本是 1.6 版本的,开发都使用这个版本,但测试的工程使用的是 1.8,所以涉及到使用不同的版本进行编译,想了一下午才解决的,其实方法不难,具体的看下文吧。


使用的是 Linux 系统,先介绍一些基本的命令

JDK list

查看目前系统有的 JDK 的版本号

JDK java 版本

安装对应版本的 java

java -version

查看目前默认 java 的版本号

修改 jenkins 编译项目的方法有两种

  1. 把 jenkins 的系统管理—>系统设置—>JDK 版本添加项目需要的版本
  1. 添加一个普通的任务,在构建的时候使用
#设置环境变量,先把JDK版本的在这个shell中切换到编译需要的版本
export JAVA_HOME=/opt/soft/jdk/jdk-xxxx
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
#最后再的运行构建的命令
mvn test

jenkinsl 添加任务的时候,不能添加 maven 任务,要不切换环境变量的命令会不生效,原因看最后 Linux 环境变量的更改方法。

####Linux 设置环境变量的三种方法

  1. 修改系统的配置文件 profile
  1. 修改指定用户的配置文件.bash_profile
  1. 修改当前 shell 的环境变量(临时变量)

直接在当用用户的 shell 运行以下命令

export JAVA_HOME=/usr/share/jdk1.6.0_14 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

​ 此方法只对当前的 bash 生效,退出再登录就会失效,只适合临时测试使用。

jenkins 在 shell 中使用就是这种方式,每次构建的时候都会运行一次,运行完成后就会退出 shell,环境变量就不会生效了,有个坑,当 jenkins 创建一个 maven 任务的时候,可以在构建前、后做一些 shell 操作,但因为这几个操作都不是和构建在同一个 shell 中,所以方法三在些情况中不生效。


↙↙↙阅读原文可查看相关链接,并与作者交流