我已经使用Ratpack和Groovy创建了一个API。所有GET,POST应用程序都在本地运行。现在,我希望将其移动到某个远程服务器(例如开发环境)。我怎样才能做到这一点?
要在本地启动和运行该应用程序,我必须从Eclipse IDE中执行“渐变运行”或“将Ratpack.groovy作为常规脚本运行”。然后显示“ Ratpack Server在本地主机上运行:8080”。然后我可以将API用作localhost:8080 / api / ... / ... / ...,但是同时尝试将其作为JAVA应用程序运行时,却收到错误消息:

{"@timestamp":"2016-06-02T14:47:06.026+05:30","@version":1,"message":"Starting server...","logger_name":"ratpack.server.RatpackServer","thread_name":"main","level":"INFO","level_value":20000,"tags":null}
Exception in thread "main" java.io.UncheckedIOException: java.io.IOException: Is a directory
    at ratpack.util.Exceptions.uncheck(Exceptions.java:52)
    at ratpack.groovy.Groovy.ratpack(Groovy.java:112)
    at ratpack.groovy.Groovy$ratpack.callStatic(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:206)
    at Ratpack.run(Ratpack.groovy:22)


为了将它部署到产品中,我将jar移到了服务器上。之后,我应该怎么做才能启动Ratpack服务器或API服务?

最佳答案

我建议您设置一个CI管道,以构建一个Java jar并将工件部署到您的目标环境。

我建议使用John Engleman https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow的Shadow Plugin

这个插件产生一个影子罐子(类似于Maven的阴影罐子),可以选择包含bash脚本或批处理脚本来启动应用程序。

高层建议:


将shadow插件添加到gradle构建文件中

插件{
  id'io.ratpack.ratpack-groovy'版本'1.3.3'
  id'com.github.johnrengelman.shadow'版本'1.2.3'
}
拥有CI服务器或手动执行`gradlew installShadowApp
将工件从您的build/installShadow目录SCP / FTP传输到目标服务器
build/installShadow/$appName/bin/$appName调用Shell脚本以启动应用程序


对于更易于维护的解决方案,我建议将此外壳程序脚本注册为服务或使用诸如monit / upstart /等解决方案进行注册。

有关作为示例部署到Heroku的更详细示例,请查看我的注释:http://danhyun.github.io/2016-gr8confeu-rapid-ratpack-groovy/#deploying_to_heroku

09-08 02:29