gpt4 book ai didi

Gradle 多个项目在部署时构建 ClassNotFound

转载 作者:行者123 更新时间:2023-12-03 05:17:41 24 4
gpt4 key购买 nike

我的 Web 应用程序是使用两个项目构建的,其中一个项目包含 api 和第二个 Web 部件。在 Eclipse 中,我可以在 project-web 中使用 project-api 中的类,但是在部署中我有异常:

Caused by: java.lang.ClassNotFoundException: project.api.TestApi

这是我的主要 build.gradle 文件:
sourceCompatibility = 1.7

subprojects {
apply plugin: 'java'
}

这是来自 api 的 build.gradle:
apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
mavenCentral()
}

dependencies {

}

这是我来自网络的 build.gradle 的一部分:
dependencies {
compile project(':project-api')
...
}

如果我去查看 Web 应用程序库,我将看不到 project-api.jar 之类的任何东西。我在做什么错?
更新:
仅在 eclipse 中是问题。如果我运行 gradlew war 并将其手动部署到 tomcat,我可以在不发布任何内容的情况下部署它。 project-api.jar 包含在 war 中。我已经尝试过几次
`gradlew clean cleanEclipse eclipse` 

但这无济于事。我也尝试在 Eclipse 中重新导入项目,但还是一样。
编辑:
这个项目是一个spring mvc应用程序,我刚刚发现当我从gradle构建war时,我可以手动部署war而没有任何错误。问题仅在尝试通过 Eclipse 部署时出现。
编辑:这里是 settings.gradle
rootProject.name = 'project'
include 'project-test'
include 'project-web'
include 'project-api'

最佳答案

您需要将可部署项目的依赖项转换为“分面项目”。

项目属性 -> 项目分面 -> 转换为分面形式...

然后将每个依赖项标记为“实用程序模块”。

关于Gradle 多个项目在部署时构建 ClassNotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778836/

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