最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

gradle - spring-boot sample app looking for the autoconfiguration at wrong plase when using custom spring-boot starter - Stack O

programmeradmin1浏览0评论

i've got multimodule sping-boot gradle project with aims to provide spring-boot starter functionality and contains of modules

library
autoconfiguration
starter
sample-app

settings.gradle.kts looks like

rootProject.name = "app"

include("library")
include("autoconfiguration")
include("starter")
include("sample-app")
...

gradle scripts for modules looking like

library

dependencies {
    // logging
    implementation(libs.slf4j.api)
    implementation(libs.logback.classic)

    // test
    testImplementation(libs.junit.jupiter.api)
    testRuntimeOnly(libs.junit.jupiter.engine)
    testImplementation(libs.junit.jupiter.params)
    testImplementation(libs.assertj.core)
    testImplementation(libs.mockk)
}

autoconfiguration

dependencies {
    kapt(libs.spring.boot.configuration.processor)

    api(project(":library"))

    implementation(libs.spring.boot.autoconfigure)

    testImplementation(libs.spring.boot.starter.test)
}

autoconfiguration also has at resources META_INF/spring/Atoconfiguration.imports with content

org.example.app.configuration.MyConfiguration

starter

dependencies {
    implementation(project(":autoconfiguration"))
    implementation(project(":library"))
}

sample app

dependencies {

    implementation(libs.spring.boot.starter)
    implementation(project(":starter"))

    // test
    testImplementation(libs.spring.boot.starter.test)
}

the question is how to wire starter to sample app? i've tried

implementation(project(":starter"))

implementation(project(":autoconfiguration"))
implementation(project(":starter"))

implementation(libs.spring.boot.starter)
implementation(project(":autoconfiguration"))
implementation(project(":starter"))
implementation(project(":library"))

but anyway i'm getting error java.io.FileNotFoundException: class path resource [com/example/app/library/configuration/MyConfiguration.class]

when running test

@SpringBootTest(
    classes = [SampleApp::class],
)
class EgtsAdapterSampleAppTest {
    @Autowired
    lateinit var context: ApplicationContext

    @Test
    fun `should load application context`() {
        assertThat(context).isNotNull
    }
}

why Spring is looking for configuration at this path example/app/library/configuration and not at example/app/configurationj as set in META_INF/spring/Atoconfiguration.imports at autoconfiguration package?

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论