[英]Is there any easy way to run jetty 8 from gradle (like with jettyRun)?
不幸的是,我需要码头8才能与spray / akka一起正常工作(这是scala项目)。
使用jettyRun使用的旧版本时,出现如下错误:
java.lang.NoClassDefFoundError:org / eclipse / jetty / continuation / ContinuationListener
是否可以创建一些简单的任务来完成jettyRun所做的工作,但要使用jetty 8?
在最坏的情况下,我可以在正在建造的战争中使用嵌入式版本的码头,但如果有的话,我很高兴看到一些更简单的解决方案...
先生,您为什么不从这里开始添加出色的答案呢?
我在下面对其进行了修改,以使用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
我认为答案来晚了:)但是,我会将其发布给其他会搜索同一内容的人。
在尝试使用gradle运行scalatra应用程序时,我偶然发现了同一问题。 我找到了这个插件,它可以正常工作-https://github.com/martins1930/jettyMulti
由于无法在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)
一切正常:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.