gpt4 book ai didi

java - eclipse 中的 Tomcat 服务器不适用于 Gradle 构建项目

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:41 24 4
gpt4 key购买 nike

我有一个使用 Gradle 构建的测试项目。我正在尝试创建一个会说 Hello gradle 的 Web 应用程序(我是 gradle 或任何构建工具的新手,所以我想在进入我的项目之前进行测试)。这是我的目录结构:

|
| build\
| build.gradle
| gradle\
| gradlew
| gradlew.bat
| README.md
| WebContent
| index.html

这是在运行gradle wrappergradle eclipseWtpgradle build 后生成的。 (排名不分先后)。我使用的构建脚本是:

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'

repositories {
mavenCentral()
}

// See http://gradle.org/docs/current/userguide/war_plugin.html
// Section 26.5. Convention properties
project.webAppDirName = 'WebContent'

sourceSets {
main {
java {
srcDir 'src'
}
resources {
srcDir 'src'
}

}
}

task wrapper (type: Wrapper){
gradleVersion = '2.11'
}

我能够成功地将这个项目导入到 Eclipse 中。我使用 eclipse 进行所有开发,因此希望选择从 eclipse 中的 tomcat 运行项目。它适用于使用 eclipse 创建的动态 Web 项目,但不适用于我的 gradle 构建项目。

服务器没有启动,出现以下错误

Setting property 'source' to 'org.eclipse.jst.j2ee.server:GradleTest' did not find a matching property.

SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base /path/to/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/GradleTest does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:136)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:5132)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5319)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/GradleTest]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1122)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1574)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1564)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/GradleTest]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
... 6 more
Caused by: org.apache.catalina.LifecycleException: Error in resourceStart()
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5320)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more

我做了一些阅读,发现添加 eclipse-wtp 解决了 this 的问题。家伙。但这并不能解决我的问题。我需要哪些附加配置才能让 tomcat 从 eclipse 运行?

此外,gradle 构建的项目没有 Deployment Descriptor、JAX-WS Web Services、Javascript Resources,这些通常出现在 eclipse 的动态 Web 项目中。

最佳答案

在项目属性的部署程序集中将源配置为 /WebContent 和部署路径 / 为我启动了 tomcat 服务器。

关于java - eclipse 中的 Tomcat 服务器不适用于 Gradle 构建项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35790800/

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