【发布时间】:2019-09-27 12:49:54
【问题描述】:
我正在使用 maven-shade 插件将 Spring Boot 应用程序打包到一个 uber jar 中。很简单,对吧?好吧,除了最近我在mvn clean package 末尾收到以下警告:
[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.
这实际上并没有破坏任何东西,但我是一个完美主义者,这让我发疯。我该如何摆脱它?我尝试了很多事情都没有成功。
【问题讨论】:
-
当您创建“Uber Jar”时会发生这种情况,您正在删除该 jar 中模块的使用。简单的回答是,作为开发人员的生活,你将需要失去那种完美主义的态度。然而,真正的问题是你为什么要创建 uber jar,你真的需要这样做吗?
-
看到这个问题不是一个很好的答案,但它触及了要点stackoverflow.com/questions/51751981/…
-
对多个 cmets 感到抱歉。阴影中有一个配置可以过滤掉文件,因此您可以预先执行此操作,如果在警告之前发生这种情况,您将不再看到它。在这里查看maven.apache.org/plugins/maven-shade-plugin/examples/…
-
如果你正在做一个 spring boot 应用程序我不知道你为什么使用 maven-shade-plugin 没有意义。在 Spring Boot 应用程序中,您正在使用 spring-boot-maven-plugin ...它可以处理该问题....此外,将模块信息用于 Spring Boot 应用程序的应用程序没有任何意义...
-
感谢大家的回复。我回家后会查看我的代码并通知您。我认为 khmarbaise 可能是对的,我的项目是最近转换为 Springboot 的 Dropwizard 项目,而 maven-shade 插件可能是该转换的后遗症......
标签: java maven maven-shade-plugin uberjar