我正在使用Maven-Shade-Plugin创建可运行的Uber-jar。 根据此页面上的最后一帧,可以通过使用以下方法来将jar大小最小化:
<configuration>
<minimizeJar>true</minimizeJar>
</configuration>
然而,这个功能并没有考虑在log4j.properties文件中声明的类。因此,例如org.apache.log4j.appender.TimeAndSizeRollingAppender
尽管在log4j.properties文件中声明了,但它不包含在Uber-jar中。
我相信我在使用Spring时也会遇到同样的问题。如果我的代码只引用接口A,并且我的Spring文件包含一个实现A的类B的实例化,则由于B不在代码中,可能不会将其添加到jar中。
如何解决这个问题?