2016-10-14 2 views
1

자동으로 openshift에서 프로그램을 다시 작성하고 업데이트하는이 스크립트에서 많은 시간을 보내고 있습니다. 내 스크립트는 다음과 같습니다 :OpenShift Maven이 올바른 JAVA_HOME을 사용하지 않습니다

시작 훅 :

#!/bin/bash 
# The logic to start up your application should be put in this 
# script. The application will work only if it binds to 
# $OPENSHIFT_DIY_IP:8080 
source $OPENSHIFT_CARTRIDGE_SDK_BASH 

nohup /bin/bash $OPENSHIFT_REPO_DIR/diy/abot.sh > $OPENSHIFT_LOG_DIR/diy.log & 
client_result "Success!" 
exit 0 

정지 후크 : 스크립트가 "daemonized"하고

#!/bin/bash 
source $OPENSHIFT_CARTRIDGE_SDK_BASH 
PID=`cat $OPENSHIFT_DATA_DIR/abot.pid` 
echo PID: $PID 
if kill $PID 
then 
    exit 0 
else 
    client_result "App already stoped!" 
fi 

abot.sh, 모든 프로세스를 실행

#!/bin/bash 
cd $OPENSHIFT_DATA_DIR 
echo $$ > abot.pid 
JAVA_HOME=/etc/alternatives/java_sdk_1.8.0 
PATH=$JAVA_HOME/bin:$PATH 
javac -version 
while : 
do 
    if [ ! -d AbotDir ] 
    then 
     git clone https://github.com/ArsenArsen/ABot.git AbotDir 
    else 
     cd AbotDir 
     git pull 
     cd .. 
    fi 
    cd AbotDir 
    echo $JAVA_HOME \| $PATH 
    $JAVA_HOME/bin/javac -version 
    $JAVA_HOME/bin/java -version 
    mvn -version 
    mvn -e -Dmaven.repo.local=$OPENSHIFT_DATA_DIR/.m2/repository 
    cd .. 
    $JAVA_HOME/bin/java -jar AbotDir/target/ABot-jar-with-dependencies.jar -nl -t TOKEN 
    echo "" > $OPENSHIFT_LOG_DIR/diy.log 
done 

필자는 여러 테스트를 수행했으며, 모두 maven이 Java7 경로를 사용하고 있다는 결론을 내렸다. Java8로 설정됩니다. 이러한 중 하나는 : 나는이 대답을 수락하지 않습니다 valid XHTML

+0

당신이 Maven (3.3.9)의 더 많은 uptodate 버전을 사용하는 것과는 별도로'$ HOME/.mavenrc' 파일을 구성했거나 PATH에 다른 Java 버전이 있다고 가정합니다. .. – khmarbaise

+0

Maven을 업데이트 할 수 없거나 java 버전을 제거 할 수 있지만 mavenrc 파일을 확인할 것입니다. 문제는 내가 OpenShift의 PaaS에 있는데, sudo 암호를주지 않는 이유가 있습니다. @khmarbaise – ArsenArsen

+0

mavenrc 파일이 없습니다. @khmarbaise – ArsenArsen

답변

0

하지만 여기 간다 :

JAVA_HOME =/기타/대안/java_sdk_1.8.0 /; MVN -version을 초래하는 $ JAVA_HOME 에코

maven을 자신의 디렉토리에 복사 한 다음 시작 스크립트를 편집하여 Java8을 강제로 사용할 수 있습니다. 내가이 해답을 받아들이지 않는 이유는 그것이 매우 해킹되고 낭비하기 때문입니다. 다른 방법이없는 경우에만 사용하십시오. 이 작업을 수행하는 방법을 알고있는 분은 언제든지 답변 해주십시오.

관련 문제