最初是通过公司回购设置新的 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 ,但它失败并出现以下错误 -jar
java
$ 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) }
}
}
- 我想了解的是嵌入式服务器 bean 是如何被注入影子插件的,而不是其他的?
- 如何在
fat-jar
不使用com.github.johnrengelman.shadow
gradle 插件的情况下创建嵌入式 Netty 服务器?