Jenkins打包脚本切换JDK版本

713 阅读1分钟

我们在做Jenkins打包或者其他需要依赖JDK环境时,这个时候JDK版本还不一样,这样就需要我们在打包时候能够脚本能自动切换到合适JDK环境。故写了下面这个JDK版本切换脚本(/usr/local/bin/sjdk),供大家使用。


#!/bin/bash
# author 小毛驴
# 
#jdk8 
#jdk11  default
# 如果脚本涉及到修改环境变量和自定义环境变量,执行脚本前一定要还原。

VERSION=${VERSION:="11"}

function usage(){
    echo -e "\nUsage: $0 <option> <value>"
    echo -e "\n option:"
    echo -e "\n -v,--version   version  num [8|11], default 11"
    echo -e "\n -h,--help      help"
}

function unsetEnv() {
    source /etc/environment 
    unset JAVA_HOME
    unset CLASSPATH
}

function jdk8() {
    unsetEnv
    export JAVA_HOME=/usr/local/jdk8
    export PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    java -version
}

function jdk11() {
    unsetEnv
    export JAVA_HOME=/usr/local/jdk11
    export PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    java -version
}

function jdkSelect() {
    if [[ "${VERSION}"x == "8"x  ]]; then
        jdk8
    fi

    if [[ "${VERSION}"x == "11"x  ]]; then
        jdk11
    fi

}

function main() {
    while [ -n "$1" ];do
        case $1 in 
        -v|--version )
            VERSION=$2
            shift
            ;;
        -h|--help )
            usage
            exit
            ;;
        esac
        shift
    done

    jdkSelect      
}

main $@

使用时候只需要在需要切换jdk的脚本里多一行该脚本的调用,例如:

/usr/local/bin/sjdk -v 8