【发布时间】:2010-09-27 21:11:15
【问题描述】:
我有一个简单的应用程序,使用 netbeans 进行开发,使用 maven 进行构建等。我的应用程序使用 camel ,配置了 spring XML。我想构建一个带有依赖项的可执行 jar,所以我使用带有 'jar-with-deps' 描述符的 maven-assembly 插件。 jar 构建良好,但我认为由于所有依赖项都已解包,并且其中一些依赖项在与其他依赖项相同的路径中具有相同的资源,因此它们会相互覆盖。我通过使用 winrar 浏览 jar 验证了这一点,我发现在很多地方都出现了同一个文件。我认为这是无法通过一些简单的 Maven 配置来解决的,因为我无法阻止依赖项想要特定路径中的资源,并且也被另一个依赖项使用。顺便说一句,该应用程序在 netbeans 内运行正常。我还看到我的应用程序类多次出现。这更奇怪,但我不知道为什么。
总之,我想知道:
是否有任何简单的解决方案可以发现此类冲突并至少报告它们,如果没有纠正它们? (以及如何)
我可以告诉归档程序(在 maven 中)不要解开 deps,而只是将 jar 包含在父 jar 中,然后将 jar 包含在清单类路径中,如何?这会解决问题还是产生相同的结果?
为什么我的应用程序类在同一路径中也出现多次?
为了让您了解问题,当前生成的 jar 在使用 WinRAR 查看时,在根路径中有 3 个“log4j.properties”实例,在 meta-inf/ 路径中有 7 个文件“spring.schemas”实例,仅举几例。
【问题讨论】:
标签: maven-2 dependencies executable-jar