【问题标题】:TaskExecutionException for gradle jettyRungradle jettyRun 的 TaskExecutionException
【发布时间】:2016-12-07 15:59:33
【问题描述】:

我正在关注“Gradle in Action”一书第 67 页尝试调用:

$ gradle jettyRun

...
* What went wrong:
Execution failed for task ':jettyRun'.
> org/eclipse/jetty/http/HttpField
...

使用--stacktrace 选项,我会收到以下消息:

...
* Exception is:
org.gradle.api.tasks.TaskExecutionException:Execution failed for task ':jettyRun'
...
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.http.HttpField
...

根据本书第 67 页,我的项目是 todo-webapp

$ tree
├── build.gradle
├── src
│   └── main
│       ├── java
│       │   └── com
│       │       └── manning
│       │           └── gia
│       │               └── todo
│       │                   ├── model
│       │                   │   └── ToDoItem.java
│       │                   ├── repository
│       │                   │   ├── InMemoryToDoRepository.java
│       │                   │   └── ToDoRepository.java
│       │                   └── web
│       │                       └── ToDoServlet.java
│       └── webapp
│           ├── css
│           │   ├── base.css
│           │   └── bg.png
│           ├── jsp
│           │   ├── index.jsp
│           │   └── todo-list.jsp
│           └── WEB-INF
│               └── web.xml

我的构建文件如下:

$ cat build.gradle

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'

repositories {
    mavenCentral()
}
dependencies {
    providedCompile 'javax.servlet:servlet-api:2.5',
            'javax.servlet.jsp:jsp-api:2.1'
    runtime 'javax.servlet:jstl:1.1.2',
            'taglibs:standard:1.1.2'
}

按照网上的各种线程,我一直在尝试向我的构建文件添加一个依赖项,例如:

jettyRun {
  dependencies {
    providedRuntime 'org.eclipse.jetty:jetty-http:9.4.0.RC0'
  }
}

或者确实直接将 jar 添加到 /usr/share/java/jetty9-httpruntime files(...)。这些都不起作用。我不太确定下一步该尝试什么。非常感谢任何建议。

编辑:正如 Vampire 所指出的,我所要做的就是删除 apply plugin: 'jetty',而是按照 apply plugin: 'war' 行添加以下行:

apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'

然后使用gradle appRun 而不是gradle jettyRun。这一切都来自gretty插件的Getting started页面。

【问题讨论】:

  • 嗨 Sven,我有一个 EE 动态 Web 项目,我想使用 gretty 插件。当我运行 gradle appRun 我得到错误: org.eclipse.jetty.util.MultiException: Multiple exceptions at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations(AnnotationConfiguration.java:537) ~[jetty-annotations-9.2 .22.v20170606.jar:9.2.22.v20170606] 你能帮帮我吗?

标签: gradle jetty gretty


【解决方案1】:

正如您在https://docs.gradle.org/current/userguide/userguide_single.html#jetty_plugin 看到的,Jetty 插件已被弃用。也许您应该按照文档中的建议尝试 Gretty 插件。 :-)

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 2013-05-13
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    相关资源
    最近更新 更多