当前位置: 首页 > 知识库问答 >
问题:

spring boot和Gradle多模块项目,未能正确加载依赖项

公良莫希
2023-03-14

基本上,我有一个spring boot项目建设与Gradle。该项目有一个包含另外4个子模块的根项目。根项目settings.gradle如下所示:

rootProject.name = 'proj'

include 'proj-app'
include 'proj-integration-tests'
include 'proj-model'
include 'proj-service'

app模块包含spring-引导-分级-插件,并公开了一些API。

我想做的是创建proj-integration-tests子模块,它只包含集成测试。问题从这里开始,因为我需要proj-app依赖关系。

所以在proj-integration-tests中,我有一个build.gradle,它包含:

dependencies {
  testCompile('org.springframework.boot:spring-boot-starter-web')
  testCompile('org.springframework.boot:spring-boot-starter-test')
  testCompile project(':proj-app')
  testCompile project(':proj-model')
}

并且我需要proj-app依赖项,因为在集成测试中:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ProjApplicathtml" target="_blank">ion.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

需要启动位于proj-app模块中的spring boot应用程序(ProjApplication.class)。

我从Gradle那里得到的错误是:“找不到符号投射”。

为什么Gradle不能正确管理proj-app依赖关系?提前致谢;)

共有1个答案

程卓君
2023-03-14

似乎proj-app依赖是以一种spring boot时尚的方式构建的。这意味着获得的工件是一个可执行的spring boot far jar。这就是为什么proj-integration-tests在编译时找不到proj-app中的类。
所以为了维护可执行jar,并将proj-app作为proj-integration-tests模块中的依赖项,我修改了proj app中的build.gradle来创建这两个jar:以spring boot的方式和标准版本:

bootJar {
baseName = 'proj-app-boot'
enabled = true
}

jar {
baseName = 'proj-app'
enabled = true
}
 类似资料:
  • 我如何在一个Android Gradle项目中设置模块的依赖关系,在这个项目中,模块之间相互依赖,这样我就可以一次部署所有模块的新快照或发布版本的构建? 该项目的结构如下: 项目配置文件如下,仅显示相关部分(根据我的判断): 设置。分级: lib-help/gradle.properties: lib-help/build.gradle: 当我运行时,所有内容都编译得很好,并且上载文件被推送到正确

  • 在开始之前,我想说我已经尝试了spring-boot-devtools重新加载多模块maven项目更改中提出的解决方案,这对我并不起作用。 问题: 我有这样一个多模块Spring Boot项目: null 我使用Netbeans GUI如果这有任何帮助。我还尝试从命令行运行该项目,但没有成功。所有模块上的Maven打包设置为。

  • 我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处

  • 问题内容: 使用IntelliJ 2016.2。 使用Gradle 2.14.1 我有2个项目,每个项目都有自己的build.gradle文件和单独的目录结构: 希望您能明白。在IntelliJ中,我具有以下相同级别的模块结构(无子项目): 简单的请求…我想在应用程序内使用。我要在同一个项目中同时开发两个模块。 我尝试在IntelliJ中为添加模块依赖关系。没有骰子。我尝试添加一个jar参考,没有

  • 我有一个多模块maven项目。它的设置是正确的,因为当我运行maven clean install时,它成功地构建了所有模块。Webapp包含我需要在web服务中具备的通用功能,因此我将其作为maven依赖项包含在web服务中。 MavenReactor摘要: Eclipse甚至会将webapp项目到web服务的部署程序集。

  • 问题内容: 我试图弄清楚Maven多模块项目中的所有依赖项。首先,我使用appfuse创建了一个新的spring mvc多模块项目。它最初具有Web和核心模块。 我发现了部署此项目的知识。但是当我遇到错误时。我总是在哪里添加依赖项或插件感到困惑。我想澄清以下问题。 我创建了一个appfuse mvc多模块项目。我先安装了核心,然后在网上进行了maven jetty7:run(最初我在根文件夹上运行