OpenShift Maven未使用正确的JAVA\u主目录

OpenShift Maven未使用正确的JAVA\u主目录,java,linux,maven,openshift,Java,Linux,Maven,Openshift,我花了几个小时在这个脚本上,它可以在openshift上自动重建和更新我的程序。我的脚本如下: 启动挂钩: #!/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 no

我花了几个小时在这个脚本上,它可以在openshift上自动重建和更新我的程序。我的脚本如下:

启动挂钩:

#!/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
止动钩:

#!/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,该脚本被“daemonized”,运行所有进程

#!/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。其中之一是: JAVA_HOME=/etc/alternations/JAVA_sdk_1.8.0/;mvn版本;echo$JAVA_主页 其结果是:

我不会接受这个答案,但它是这样的:


您可以将maven复制到它自己的目录中,然后编辑开始脚本,以便它强制使用Java8。我不接受这个答案的原因是因为它非常粗糙和浪费。仅在没有其他方法时使用。对于任何知道如何做到这一点的人,请随时回答。

我不会接受这个答案,但它是这样的:


您可以将maven复制到它自己的目录中,然后编辑开始脚本,以便它强制使用Java8。我不接受这个答案的原因是因为它非常粗糙和浪费。仅在没有其他方法时使用。对于任何知道如何执行此操作的人,请随时回答。

我假设您可能已经配置了
$HOME/.mavenrc
文件,或者您的路径中有其他版本的java,除此之外,我建议使用更新版本的Maven(3.3.9)…我无法更新Maven或删除java版本,但将检查mavenrc文件。问题是我使用OpenShift的PaaS,它没有给我sudo密码,这是有原因的@khmarbaiseI没有mavenrc文件@khmarbaiseI会假设您可能配置了
$HOME/.mavenrc
文件,或者您的路径中有其他版本的java,除此之外,我建议使用更为更新的Maven版本(3.3.9)…我无法更新Maven或删除java版本,但会检查mavenrc文件。问题是我使用OpenShift的PaaS,它没有给我sudo密码,这是有原因的@khmarbaiseI没有mavenrc文件@khmarbaise