从外部 jar 加载 @Singleton Beans

Loading @Singleton Beans from external jar

我正在尝试从外部 jar 中加载一些 class 到我的 micronaut CLI 应用程序 (cli.jar) 中,用 @singleton 注释希望它们将被注入到应用程序中。这不会发生,即使 classes 实际上打包(阴影)在 cli.jar 中。我试着用 java -verbose 查看 class 是否在 class 加载程序中,而它们不是。

它可以与 micronaut 一起使用吗?

确保外部 JAR 也配置了注释处理,以便使用 @Singleton 注释的 类 生成适当的 bean 元数据

根据格雷姆的提示,这是解决方案。这是一个 build.gradle 的工作设置:

plugins {
    id 'java'
    id "io.spring.dependency-management" version "1.0.6.RELEASE"
}

group 'xyz.transformercli'
version '1.0-SNAPSHOT'

sourceCompatibility = 11

repositories {
    mavenCentral()
}

dependencyManagement {
    imports {
        mavenBom 'io.micronaut:micronaut-bom:1.0.3'
    }
}

dependencies {
    annotationProcessor "io.micronaut:micronaut-inject-java"
    //my jar with base classes
    compile files('libs/transformer-cli-0.1.jar')
    compile "io.micronaut:micronaut-inject"
}