我不得不手動修改腳本/usr/share/grails/2.1.1/bin/startGrails
解決這個問題,因爲這個參數被Jenkins在JAVA_OPTS中傳入並被設置在GRAILS_OPTS中。
首先我刪除從GRAILS_OPTS參數:
GRAILS_OPTS="-server -Xmx768M -Xms768M -XX:PermSize=256m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8"
離去
GRAILS_OPTS="-server -XX:PermSize=256m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8"
然後,我添加a POSIX compliant contains
function:
#POSIX compliant contains implementation
#Usage string substring
contains() {
test "${1#*$2}" != "$1"
}
然後我添加邏輯以重新添加如果它們不存在,則將其大小(b/c我也使用命令行中的grails)echo
語句當然只用於調試。請注意,這是對交付文件的更改,如果您升級Grails,則可能必須重新制作。
JAVA_OPTS="$GRAILS_OPTS $JAVA_OPTS $AGENT"
echo "JAVA_OPTS: $JAVA_OPTS"
if ! contains "$JAVA_OPTS" -Xms && ! contains "$JAVA_OPTS" -Xmx
then
echo "Setting -Xms"
JAVA_OPTS="-Xms768M $JAVA_OPTS"
fi
if ! contains "$JAVA_OPTS" -Xmx
then
echo "Setting -Xmx"
JAVA_OPTS="-Xmx768M $JAVA_OPTS"
fi
echo "JAVA_OPTS: $JAVA_OPTS"