6

我正在尝试按照此处的说明在 Cloudbees 的 Jenkins 服务上运行我的 Grails 构建:

http://wiki.cloudbees.com/bin/view/DEV/Build+and+Deploy+Grails+application

但是,当我尝试从“Grails 安装”中为构建作业选择 Grails 安装时,除了“默认”选项外,下拉列表为空:

在此处输入图像描述

当我运行我的构建时,我收到以下错误消息,好像没有安装 Grials 实例:

java.io.IOException: Cannot run program "grails" (in directory "/scratch/jenkins/workspace/liza"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:709)
    at hudson.Launcher$ProcStarter.start(Launcher.java:338)
    at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:934)
    at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:901)
    at hudson.remoting.UserRequest.perform(UserRequest.java:118)
    at hudson.remoting.UserRequest.perform(UserRequest.java:48)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
    at java.lang.ProcessImpl.start(ProcessImpl.java:65)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453)
    ... 15 more

难道我做错了什么?我需要以某种方式自己安装 Grails 吗?

我试过检查“使用 Grails 包装器”复选框,但我仍然遇到类似的问题:

[liza] $ /scratch/jenkins/workspace/liza/grailsw upgrade --non-interactive
FATAL: command execution failed
java.io.IOException: Cannot run program "/scratch/jenkins/workspace/liza/grailsw" (in directory "/scratch/jenkins/workspace/liza"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
4

2 回答 2

4

“使用 Grails 包装器”将在这里为您提供帮助(假设您使用的是 Grails 2.1 或更高版本)。在您的应用程序中运行

grails wrapper

这将在您的应用程序中创建一个grailswshell 脚本和一些您需要签入的其他点点滴滴。这个包装脚本可以用来代替已安装的脚本grails,它会在第一次运行时下载自己的 Grails 副本。如果您告诉 Jenkins “使用 grails 包装器”,那么它将不需要在构建服务器上单独安装 Grails。

于 2013-02-06T11:17:08.980 回答
3

如果您访问/configure您的 Jenkins 服务器,您应该会看到 Grails 安装列表。如果为空,可以添加一个;选择Use Pre-Installed Grails on DEV@Cloud并选择其中一个提供的版本(如果它们适合您的需要);或者您可以选择自动安装并从公共镜像下载最近的构建。

如果这些事情没有解决,您可以随时打开支持票;如果有可以帮助其他人的解决方案,请参考此 SO 问题。

于 2013-02-06T14:26:05.713 回答