SpringMVC + Groovy in Openshift



我已经使用了这个Gradle Openshift quickstart来将Gradle与Openshift一起使用,即使使用Jenkins,一切都能正常工作!

但是,我想使用Groovy,所以我在build.gradle中添加了以下代码,以将groovy脚本编译到.class

参见

  sourceSets{
main{
    java{
        srcDir "src/main/java"
    }
    resources{
        srcDir "src/main/java"
    }
    groovy{
        srcDir "src/main/java"
    }
}
test.java.srcDir "src/test/java"
}

它在本地工作,我使用Tomcat7,但当我部署jenkins构建时失败,并显示消息

:compileJava
:compileGroovy FAILED
 FAILURE: Build failed with an exception.
 * What went wrong:
 Execution failed for task ':compileGroovy'.
 > java.net.SocketException: Permission denied
 * Try:
 Run with --stacktrace option to get the stack trace. Run with --info or --              debug option to get more log output.

所以,当gradle尝试执行compileGroovy任务时,问题是关于Permission denied的,我想这是OpenShift操作系统中的问题,但我不知道出了什么问题,我已经在文件.openshift/build.openshift/pre-build中插入了以下代码,请参阅下面的

预生成文件(_B)

if [ ! -d $OPENSHIFT_DATA_DIR/gradle-1.6 ]
 then
   cd $OPENSHIFT_DATA_DIR
   mkdir gradle
   wget http://services.gradle.org/distributions/gradle-1.6-bin.zip
   unzip gradle-1.6-bin.zip
   rm -f gradle-1.6-bin.zip
 fi
if [ ! -d $OPENSHIFT_DATA_DIR/groovy ]
  then
    cd $OPENSHIFT_DATA_DIR
    mkdir groovy
    wget http://dl.bintray.com/groovy/maven/groovy-binary-2.4.1.zip
    unzip groovy-binary-2.4.1.zip
    rm -f groovy-binary-2.4.1.zip
fi

生成文件

   cd $OPENSHIFT_REPO_DIR
   echo SETTING GRADLE HOME
   export GRADLE_USER_HOME=$OPENSHIFT_DATA_DIR/gradle
   export GRADLE_HOME=$OPENSHIFT_DATA_DIR/gradle-1.6
   export PATH=$GRADLE_HOME/bin:$PATH
   gradle build
   export GROOVY_USER_HOME=$OPENSHIFT_DATA_DIR/groovy
   export GROOVY_HOME=$OPENSHIFT_DATA_DIR/groovy
   export PATH=$GRADLE_HOME/bin:$PATH

好吧,即使我安装了groovy,我也无法在openshift中编译groovy文件,如何使groovy在openshirt上工作?

java.net.SocketException: Permission denied通常意味着您正试图在没有权限的端口上设置服务器套接字或类似的套接字。这可能是防火墙阻塞,或者在Linux系统上为root等特权用户保留的端口号太低。我认为OpenShift使用的端口在15000+范围内,所以防火墙是最有可能的问题。

最新更新