欢迎!请参阅关于页面以了解有关如何使用的信息。
我们需要自定义由clojure.tools.build.api/uber创建的META-INF/MANIFEST.MF文件,有以下几个原因
clojure.tools.build.api/uber
Liquibase-Package
Multi-Release: true
使用Leiningen,您可以在project.clj中通过包含一个:manifest键来指定清单的内容将非常有助于向tools.build添加这样的选项
project.clj
:manifest
tools.build
关于log4j性能下降的问题,也许可以看一下这个GitHub链接:https://github.com/line/armeria/issues/2306,其中描述了类似的症状,原因是客户端代码中的特定调用(而非log4j本身)使用了已经过时很长时间的方法。
说到这,我们还遇到了相反的问题:在使用depstar之前添加了Multi-Release: true的检测/设置之前,我们的log4j2在Java 11中运行得非常慢(但在Java 8中运行良好),因为它回退到了反射和堆栈跟踪,据我所知。
depstar
log4j2
关于:manifest配置:这是depstar中已经集成的东西,现在提供了一个API,可以提供对tools.build中的jar和uber函数的即插即用替换(使用相同的输入和返回值)。
jar
uber
如果需要的话,我很乐意在depstar中添加一个选项来禁用MR检测?关于细节,请参阅https://cljdoc.org/d/com.github.seancorfield/depstar/2.1.267/doc/tools-build-usage。
已记录为 https://clojure.atlassian.net/browse/TBUILD-5
tools.build v0.1.4中添加了在jar和uber任务中支持自定义manifest属性(包括对自动项目的覆盖)。
(uber {... :manifest {"Liquibase-Package" "whatever" "Multi-Release" false}})