如何将jetty或gretty导入我的gradle脚本

如何将jetty或gretty导入我的gradle脚本,gradle,build.gradle,gradle-plugin,gretty,Gradle,Build.gradle,Gradle Plugin,Gretty,我正在试用《gradle In Action》一书中的gradle示例“todo webapp jetty”。这是可以找到的。经过几次搜索,我知道jetty不再受支持。相反,我们需要使用gretty插件(最好是org.gretty提供的插件)。但还是没有运气。我的构建脚本与示例相同,只是调整为使用gretty插件 使用plugins块,这可以正常工作,但只有在我执行jettyRun任务之前。在执行jettyRun任务后,控制台停留在87%: plugins{ id 'java'

我正在试用《gradle In Action》一书中的gradle示例“todo webapp jetty”。这是可以找到的。经过几次搜索,我知道jetty不再受支持。相反,我们需要使用gretty插件(最好是org.gretty提供的插件)。但还是没有运气。我的构建脚本与示例相同,只是调整为使用gretty插件

使用plugins块,这可以正常工作,但只有在我执行jettyRun任务之前。在执行jettyRun任务后,控制台停留在87%:

plugins{
    id 'java'
    id 'war'
    id 'org.gretty' version '2.2.0'
}
............
    t<===========--> 87% EXECUTING [13s]a:509)
    > :jettyRun=--> 87% EXECUTING [12s]artifacts.configurations.DefaultConfiguration.access$1800> :jettyRun=--> 87% EXECUTING [12s]
    > :jettyRunorg.gradle.api.internal.artifacts.configurations.DefaultConfiguration$Configurati<===========--> 87% EXECUTING [12s]ts(DefaultConfiguration.java:1037)
    > :jettyRunorg.gradle.api.internal.artifacts.configurations.DefaultConfiguration$Configurati<===========--> 87% EXECUTING [12s]nfiguration.java:1025)
    > :jettyRun 81 more
    <===========--> 87% EXECUTING [12s]
    > :jettyRun
    > IDLE
编辑2开始Mybuild.gradle:

plugins{
    id 'java'
    id 'war'
    id 'org.gretty' version '2.2.0'
}

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    providedCompile 'javax.servlet:servlet-api:2.5'
    runtime 'javax.servlet:jstl:1.1.2'
}
编辑2结尾

非常感谢您的指导。

这是Gradle在执行启动和运行应用程序(如jettyRun或bootRun)的任务时的“正常”行为:在应用程序执行时,您将看到
XY%正在执行[…]
消息

例如,使用Spring Boot
bootRun
任务,您将有:

$ ./gradlew bootRun

> Task :bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.6.RELEASE)

<=========----> 75% EXECUTING [1m 58s]
> :bootRun

请看这个类似的问题/答案:非常感谢您的回答。我已经编辑了我的OP并添加了完整的stacktrace,并启用了日志信息。如您所见,构建运行中存在一个问题。它给出异常并抱怨由以下原因引起的
:org.gradle.internal.resolve.ModuleVersionNotFoundException:找不到org.gretty:gretty-runner-jetty9:2.2.0。
即使我假设这是正常的(这里似乎不是这样),我仍然无法在默认端口8080找到应用程序。如果我遗漏了什么,请告诉我。你是对的。添加jcenter回购解决了我的问题。应用程序已启动并正在运行。再次感谢@MRicciuti。我认为你的回答已被接受。但有一件事仍然困扰着我,那就是我的OP的第二个错误,在这个错误中,build失败了,它说:
id为'org.gretty'的插件在未使用gteh插件块时未找到
。对于第二个问题:要应用插件,你需要使用
插件{…}
语法或
应用插件:'xyz
:在第二种情况下,如果插件不是Gradle附带的核心插件(gretty插件就是这样),则
buildscript{}
块是必需的。这里有更多信息:好奇:如果非核心插件必须使用
buildscript{}
块(这里是gretty),那么我的应用程序一开始就不应该构建。但它确实做到了,并且正在启动和运行。我没有在构建脚本的任何地方使用
buildscript{}
块。正如我前面提到的,我正在一页一页地浏览Gradle的实际操作,还没有遇到
buildscript{}
。但我在学习的过程中会注意一些事情,因为这本书使用了gradle 1.7,而我使用的是gradle 4.10.2
plugins{
    id 'java'
    id 'war'
    id 'org.gretty' version '2.2.0'
}

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    providedCompile 'javax.servlet:servlet-api:2.5'
    runtime 'javax.servlet:jstl:1.1.2'
}
$ ./gradlew bootRun

> Task :bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.6.RELEASE)

<=========----> 75% EXECUTING [1m 58s]
> :bootRun
repositories {
    jcenter()
    // your other repositories ...

}