Jetty Can';我不能让杰特伦在格拉德尔工作
我有一个WEBAPP多项目Gradle构建,结构如下。我也在使用SPRING框架。由于找不到我的bean文件(daobeans.xml),我无法让webapp在Jetty中运行。如果我将bean文件复制到webapp build dir,就会找到它们,但是Spring无法实例化我的类,因为它无法在类路径上找到类。我做错了什么Jetty Can';我不能让杰特伦在格拉德尔工作,jetty,classpath,gradle,Jetty,Classpath,Gradle,我有一个WEBAPP多项目Gradle构建,结构如下。我也在使用SPRING框架。由于找不到我的bean文件(daobeans.xml),我无法让webapp在Jetty中运行。如果我将bean文件复制到webapp build dir,就会找到它们,但是Spring无法实例化我的类,因为它无法在类路径上找到类。我做错了什么 +-- build.gradle +-- dao-impl ¦ +-- src ¦ +-- main ¦ ¦ +-- java ¦
+-- 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
}
战争结构:
├── 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中发出(如果可能的话,最好去掉.sourceset.main.output,但这两个表单都应该工作)以及“:presenter”项目如何依赖“:dao impl”项目?您如何在presenter gradle配置中声明这一点?请显示演示者项目在依赖项方面的更多gradle配置。这个答案可能会有帮助(但根据运行时依赖项的需要进行修改,而不仅仅是测试)