有没有简单的方法可以从 gradle 运行 jetty 8 (就像使用 jettyRun 一样)?

发布于 2024-12-18 10:15:58 字数 312 浏览 1 评论 0原文

不幸的是,我需要 jetty 8 才能与 Spray/akka(它是 scala 项目)正常工作。
对于 jettyRun 使用的旧版本,我收到如下错误:
java.lang.NoClassDefFoundError: org/eclipse/jetty/continuation/ContinuationListener
是否可以创建一些简单的任务来完成 jettyRun 正在做的工作,但使用 jetty 8?

在最坏的情况下,我可以使用我正在构建的 war 的嵌入式版本的 jetty,但我很高兴看到一些更简单的解决方案(如果有的话)...

Unlucky I need jetty 8 to work properly with spray/akka (it's scala project).
With older version used by jettyRun I'm getting error like:
java.lang.NoClassDefFoundError: org/eclipse/jetty/continuation/ContinuationListener

Is it possible to create some simple task to do the job which jettyRun is doing but with jetty 8?

In worst case I can use embedded version of jetty with war which I'm building, but I would be happy to see some simpler solution if there is any...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜柠檬 2024-12-25 10:15:59

Pitor,你为什么不最终添加你的优秀答案 这里

我在下面对其进行了修改,以使用 Jetty 版本 9,依赖于 war 任务,并使用与 jetty 插件相同的任务名称(即 jettyRun)。

configurations {
    jetty
}

dependencies {
    jetty "org.eclipse.jetty:jetty-runner:9.2.11.v20150529"
}

task jettyRun(type: JavaExec, dependsOn: war) {
    main = "org.eclipse.jetty.runner.Runner"
    args = [war.archivePath]
    classpath configurations.jetty
}

用法:

gradle jettyRun

Pitor, why didn't you end up adding your excellent answer from here?

I've adapted it below, to use Jetty version 9, to depend on the war task, and to use the same task name as the jetty plugin (i.e. jettyRun).

configurations {
    jetty
}

dependencies {
    jetty "org.eclipse.jetty:jetty-runner:9.2.11.v20150529"
}

task jettyRun(type: JavaExec, dependsOn: war) {
    main = "org.eclipse.jetty.runner.Runner"
    args = [war.archivePath]
    classpath configurations.jetty
}

Usage:

gradle jettyRun
夜清冷一曲。 2024-12-25 10:15:59

由于我无法在 gradle 构建级别找到好的解决方案,因此我决定使用嵌入式码头。这是 scala 类:

import org.eclipse.jetty.server.Server
import org.eclipse.jetty.webapp.WebAppContext
import org.eclipse.jetty.server.bio.SocketConnector

object JettyServer {

  def main(args: Array[String]) {
    val server = new Server
    val context = new WebAppContext
    val connector = new SocketConnector

    connector.setMaxIdleTime(1000 * 60 * 60)
    connector.setPort(8080)

    context.setServer(server)
    context.setWar(args(0))

    server.setConnectors(Array(connector))
    server.setHandler(context)

    try {
      server.start();
      server.join();
    } catch {
      case e: Exception => e.printStackTrace();
    }
  }
}

然后在 build.gradle 中:

apply plugin: "application"

mainClassName = "com.mycompany.myproject"
run.args = [war.archivePath]
task jettyRun(dependsOn: run)

一切正常:)

Since I wasn't able to find good solution at the gradle build level I decided to use embedded jetty. Here is scala class:

import org.eclipse.jetty.server.Server
import org.eclipse.jetty.webapp.WebAppContext
import org.eclipse.jetty.server.bio.SocketConnector

object JettyServer {

  def main(args: Array[String]) {
    val server = new Server
    val context = new WebAppContext
    val connector = new SocketConnector

    connector.setMaxIdleTime(1000 * 60 * 60)
    connector.setPort(8080)

    context.setServer(server)
    context.setWar(args(0))

    server.setConnectors(Array(connector))
    server.setHandler(context)

    try {
      server.start();
      server.join();
    } catch {
      case e: Exception => e.printStackTrace();
    }
  }
}

And then in build.gradle:

apply plugin: "application"

mainClassName = "com.mycompany.myproject"
run.args = [war.archivePath]
task jettyRun(dependsOn: run)

And everything works :)

鹿童谣 2024-12-25 10:15:59

我认为现在回答有点晚了:)但我会将其发布给其他会在谷歌上搜索相同内容的人。

我在尝试使用 gradle 运行 scalatra 应用程序时偶然发现了同样的问题。
我找到了这个插件,它可以正常工作 - https://github.com/martins1930/jettyMulti

I think it's a little late for an answer :) But I'll post it for others who would google around for the same thing.

I stumbled upon the same issue while trying to run a scalatra app with gradle.
I found this plugin and it just works - https://github.com/martins1930/jettyMulti

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文