【问题标题】:can we import the specified classes jar file from another mincroanut project to an micronaut project我们可以将指定的类 jar 文件从另一个 mincroanut 项目导入到 micronaut 项目吗
【发布时间】:2020-10-12 09:33:17
【问题描述】:

我有 2 个 micronaut (groovy) 项目,称为项目 A 和项目 B

项目 B 有控制器和服务(包 com.service , com.controller ) 但我只从包 com.service 创建了 jar com.service 包中的代码有 @Singleton 注释和 @Scheduled

我已启用注释处理作为两个项目的链接 (https://docs.micronaut.io/latest/guide/index.html#ideaSetup) 请参阅下面我的 gradle 代码以生成 JAR 文件(输出文件为 project-b-libs-0.x.jar)

task createLibraryJar(type: Jar) {
    baseName( getArchivesBaseName() + "-libs")
    from sourceSets.main.output
    includeEmptyDirs = false
    include '**/service/**/*.class'
}

然后我将 proejct-b-libs-0.x.jar 添加到项目 A gradle的依赖如下

dependencies {
annotationProcessor "io.micronaut:micronaut-inject-java"
implementation("io.micronaut:micronaut-validation")
implementation("io.micronaut.groovy:micronaut-runtime-groovy")
implementation("javax.annotation:javax.annotation-api")
implementation("io.micronaut:micronaut-http-client")
runtimeOnly("ch.qos.logback:logback-classic")
compileOnly files('libs/project-b-libs-0.4.jar')
compile "io.micronaut:micronaut-inject"
}

最后,在我尝试从 JAR 文件中的类调用 @Inject 对象后,它在运行时显示错误

原因:io.micronaut.context.exceptions.BeanContextException:错误 加载 bean [com.service.TestService]: com/service/StripePaymentService

项目 A 有 com.service.TestService 来调用 JAR 文件中的 com.service.StripePaymentService

对不起我的英语,谢谢你试图理解我

【问题讨论】:

    标签: groovy micronaut


    【解决方案1】:
    compile files('libs/project-b-libs-0.4.jar')
    

    我只使用compile,而不是compileOnly,当我提取jar文件时,不能使用上面gralde脚本中的jar文件,一些mincronaut的东西丢失了

    所以我尝试如下另一个 gradle 任务的脚本(从包含更改为排除)

    task createLibraryJar(type: Jar) {
    
        baseName( getArchivesBaseName() + "-libs")
        from sourceSets.main.output
        includeEmptyDirs = false
        exclude '**/controller/**/*.class'
    
    }
    

    因为 micronaut 的东西还在 JAR 文件中,所以它可以工作,我只从我的 jar 文件中排除不必要的类

    【讨论】:

      猜你喜欢
      • 2019-05-06
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      相关资源
      最近更新 更多