gpt4 book ai didi

java - 如何将 Ratpack API 部署到远程服务器?

转载 作者:行者123 更新时间:2023-12-02 03:34:03 24 4
gpt4 key购买 nike

我使用 Ratpack 和 Groovy 创建了一个 API。所有 GET、POST 应用程序都在本地运行。现在我希望将其移动到某个远程服务器(例如开发环境)。我怎样才能做到这一点?要在本地启动并运行该应用程序,我必须从 eclipse IDE 执行“gradle run”或“将 Ratpack.groovy 作为 groovy 脚本运行”。然后它显示“Ratpack Server running in localhost: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 的 Shadow 插件 https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow

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

高层建议:

  1. 将 Shadow 插件添加到您的 gradle 构建文件

    插件{ id 'io.ratpack.ratpack-groovy' 版本 '1.3.3' id 'com.github.johnrengelman.shadow' 版本 '1.2.3'}

  2. 拥有 CI 服务器或手动执行 `gradlew installShadowApp

  3. 通过 SCP/FTP 将此工件从您的 build/installShadow 目录传输到目标服务器

  4. build/installShadow/$appName/bin/$appName 调用 shell 脚本来启动应用程序

为了获得更易于维护的解决方案,我建议将此 shell 脚本注册为服务或使用 monit/upstart/等解决方案

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

关于java - 如何将 Ratpack API 部署到远程服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37660761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com