3

最初是通过公司回购设置新的 Micronaut 项目的障碍,现在更多的是对嵌入式服务器如何引导的好奇心。我有一个带有gradle插件的Micronaut CLI 生成的项目,当我使用 -com.github.johnrengelman.shadow

$ java -Dmicronaut.environments=E1 -jar build/appBundle/app.jar

build.gradle -

plugins {
  id "com.github.johnrengelman.shadow" version "5.0.0"
}

...

shadowJar {
    mergeServiceFiles()
}

当我用任务和插件替换shadow插件/任务时,我可以创建一个可执行的 fat-jar ,但它失败并出现以下错误 -jarjava

$ java -Dmicronaut.environments=E1 -jar build/appBundle/app.jar
16:12:22.662 [main] INFO  i.m.context.env.DefaultEnvironment - Established active environments: [E1]
16:12:22.863 [main] INFO  io.micronaut.runtime.Micronaut - No embedded container found. Running as CLI application

build.gradle -

plugins {
  id "java"
}

...

jar {
  manifest {
    attributes "Main-Class": "axp.payments.pci.dss.PaymentsPciDssDispatcher"
  }

  from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
  }
}
  1. 我想了解的是嵌入式服务器 bean 是如何被注入影子插件的,而不是其他的?
  2. 如何在fat-jar不使用com.github.johnrengelman.shadowgradle 插件的情况下创建嵌入式 Netty 服务器?
4

0 回答 0