首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring启动和分级多模块项目,未能正确加载依赖项。

Spring启动和分级多模块项目,未能正确加载依赖项。
EN

Stack Overflow用户
提问于 2018-04-25 19:15:38
回答 1查看 3.6K关注 0票数 2

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

代码语言:javascript
运行
复制
rootProject.name = 'proj'

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

该应用程序模块包含spring-boot-gradle-plugin并公开了一些api。

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

所以在proj-集成测试中,我有一个build.gradle,它包含:

代码语言:javascript
运行
复制
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依赖:

代码语言:javascript
运行
复制
@RunWith(SpringRunner.class)
@SpringBootTest(classes = ProjApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

需要Spring应用程序启动(ProjApplication.class),它位于proj模块中。

我从Gradle那里得到的错误是:“无法找到符号ProjApplication”。

为什么Gradle不能正确地管理proj-app依赖?(预先谢谢;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-01 14:36:01

看起来,proj-app依赖是以一种spring引导方式构建的。这意味着获得的工件是一个可执行的spring引导,远jar.This就是为什么在编译时,该proj集成测试无法从proj-app中找到类的原因。

因此,为了维护可执行的jar,并将proj-app作为proj集成测试模块中的依赖项,我从proj应用程序中修改了build.gradle,以创建两个jar:以一种春季引导方式和标准版本:

代码语言:javascript
运行
复制
bootJar {
baseName = 'proj-app-boot'
enabled = true
}

jar {
baseName = 'proj-app'
enabled = true
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50029812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档