Java 如何创建Micronaut';没有阴影插件的胖罐子?

Java 如何创建Micronaut';没有阴影插件的胖罐子?,java,gradle,netty,micronaut,gradle-shadow-plugin,Java,Gradle,Netty,Micronaut,Gradle Shadow Plugin,一开始,Micronaut与企业回购协议(corporate repo)合作建立一个新项目时遇到了一个障碍,现在,人们对嵌入式服务器如何引导的好奇更多了。我有一个CLI生成的项目,带有com.github.johnrengelman.shadowgradle插件,当我使用- $ java -Dmicronaut.environments=E1 -jar build/appBundle/app.jar build.gradle- plugins { id "com.github.johnre

一开始,Micronaut与企业回购协议(corporate repo)合作建立一个新项目时遇到了一个障碍,现在,人们对嵌入式服务器如何引导的好奇更多了。我有一个CLI生成的项目,带有
com.github.johnrengelman.shadow
gradle插件,当我使用-

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

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

...

shadowJar {
    mergeServiceFiles()
}
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) }
  }
}
当我用
jar
task和
java
plugin替换
shadow
plugin/task时,我能够创建一个可执行的胖jar,但它失败了,出现了以下错误-

$ 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 "com.github.johnrengelman.shadow" version "5.0.0"
}

...

shadowJar {
    mergeServiceFiles()
}
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是如何被注入shadowplugin的,而不是别的
  • 如何使用嵌入式Netty服务器创建
    fat jar
    ,而不使用
    com.github.johnrengelman.shadow
    gradle插件

  • 这不正是创建胖罐子的插件吗?因此,如果没有创建胖jar的插件,您必须在Gradle内部以艰难而丑陋的方式(使用正确的清单、覆盖类的逻辑等为自己构建一个jar)来创建胖jar。更重要的是,将所有提取的LIB放在JAR中。这个问题实际上与Micronaut无关。您应该解释您不使用shadow插件的原因,否则它就没有意义了。@Serverfrog是的,
    shadow jar
    可以与micronaut配合使用。创建胖jar的另一种方法是在gradle中使用
    java
    插件的
    jar
    任务。如果你读了整个问题,上面就提到了。我试图理解为什么后者不适用于micronaut,而适用于简单的java应用程序。@JamesKleeh是的,这可能不是micronaut的问题。我试图理解为什么
    jar
    任务的
    java
    gradle插件不适用于micronaut,而它适用于一个简单的java应用程序。shadow jar将您的代码和依赖项合并到一个jar中。如果您只是使用jar,那么在通过java-jar运行应用程序时,必须将依赖项添加到类路径中