gpt4 book ai didi

jetty - 无法让 jettyRun 在 Gradle 中工作

转载 作者:行者123 更新时间:2023-12-01 07:21:21 26 4
gpt4 key购买 nike

我有一个具有以下结构的 WEBAPP 多项目 Gradle 构建。我也在使用 Spring 框架。我无法让 webapp 在 Jetty 中运行,因为找不到我的 bean 文件 (dao-beans.xml)。如果我将 bean 文件复制到 webapp 构建目录,它们会被发现,但是 Spring 无法实例化我的类,因为它无法在类路径中找到这些类。我做错了什么?

+-- build.gradle
+-- dao-impl
¦   +-- src
¦   +-- main
¦   ¦   +-- java
¦   ¦   +-- resources
¦   ¦   +-- dao-beans.xml
¦   +-- test
¦   +-- java
+-- gradle.properties
+-- presenter
¦   +-- build.gradle
¦   +-- src
¦   +-- main
¦   ¦   +-- java
¦   ¦   +-- resources
¦   ¦   ¦   +-- beans.xml
¦   ¦   +-- webapp
¦   ¦   +-- WEB-INF
¦   ¦   +-- web.xml
¦   +-- test
¦   +-- java
+-- settings.gradle

演示者的build.gradle:

apply plugin: "jetty"
apply plugin: "war"

jettyRun {
httpPort = 8080
scanIntervalSeconds = 3
}

war 结构:

├── META-INF
│   └── MANIFEST.MF
└── WEB-INF
├── classes
│   ├── beans.xml
│   ├── *.classes
│   └── logback.xml
├── lib
│   ├── *.jar
└── web.xml

最佳答案

您需要使您的“dao-impl”成为一个独立的 Java 项目(以便顶级项目构建它)。

新文件dao-impl/build.gradle

apply plugin: "java"

就子项目指示顶层项目。

然后在现有的 presenter/build.gradle 文件中添加对其他项目的依赖:

dependencies {
...
compile project(':dao-impl').sourceSets.main.output
}

这应该会导致 JAR 在部署的 Jetty 中的通常位置 WEB-INF/lib/dao-impl-x.y.z.jar 中发出(如果可能,最好取消 .sourceSets.main.output,但两种形式都应该有效)

关于jetty - 无法让 jettyRun 在 Gradle 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13439566/

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