Micronaut-Shadow Fat-jar插件不适用于公司回购

我正在使用Micronaut框架来开发项目,而micronaut CLI会使用com.github.johnrengelman.shadow gradle 插件生成项目,当我使用-

运行jar时,效果很好
$ java -Dmicronaut.environments=E1 -jar build/appBundle/app.jar

build.gradle -

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

...

shadowJar {
    mergeServiceFiles()
}

问题是com.github.johnrengelman.shadow插件由于某种原因无法与Jenkins配合使用,我怀疑它在我们的公司存储库中不可用(并且无法添加)。虽然我可以使用jar插件的java任务创建可执行文件fat-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 "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) }
  }
}

主要问题是为什么com.github.johnrengelman.shadow插件不能与公司存储库一起使用?

z86631075 回答:Micronaut-Shadow Fat-jar插件不适用于公司回购

已解决

问题是插件{...}块无法访问私有/公司存储库。

通过将插件定义从plugins{...}恢复为旧的定义方式apply plugin...

解决了该问题

添加了应用插件的较旧方法(这是使其与私有存储库一起使用的唯一方法)-

apply plugin: "com.github.johnrengelman.shadow"

已删除(无法访问私人/公司存储库)-

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

有关更多信息,请查看此SO question中的第一条评论。

,

您可以通过一种方法来解决这种令人烦恼的情况。

您可以从GitHub下载shadow jar plugin源代码,并将其添加到<project-root-folder>/buildSrc目录中的Micronaut应用程序存储库中。

您可以按照此指南创建自定义插件https://guides.gradle.org/writing-gradle-plugins

通过这种方法,影子插件位于您的代码库中,您无需下载即可使用它。

最后一个想法。一家不允许您在公司资源库中代理此插件的开源软件的公司,阻碍了您的工作。您可能想和您的经理谈谈。

我描述的解决方法很可怕,因为

  • 您必须根据源代码升级插件
  • 很可能很快就会过时了
  • 这根本不是做到这一点的方式

祝你好运。希望这会有所帮助。

本文链接:https://www.f2er.com/3155818.html

大家都在问