问题原因:目前使用的测试环境默认的 JDK 的版本是 1.6 版本的,开发都使用这个版本,但测试的工程使用的是 1.8,所以涉及到使用不同的版本进行编译,想了一下午才解决的,其实方法不难,具体的看下文吧。
使用的是 Linux 系统,先介绍一些基本的命令
JDK list
查看目前系统有的 JDK 的版本号
JDK java 版本
安装对应版本的 java
java -version
查看目前默认 java 的版本号
修改 jenkins 编译项目的方法有两种
#设置环境变量,先把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 设置环境变量的三种方法
用文本编辑器打开/etc/profile
·在 profile 文件末尾加入:
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
这种修改的方法,是对所有用户的 shell 都有权使用这些环境变量,有可能会有系统安全问题。
用文本编辑器打开用户目录下的.bash_profile 文件
·在.bash_profile 文件末尾加入:
export JAVA_HOME=/usr/share/jdk1.6.0_14(java的版本号)
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
这种修改的方法,是只对单个用户的 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 中,所以方法三在些情况中不生效。