2008-12-20 78 views
0

我有一个简单的应用程序使用netbeans进行开发,并为构建等所有maven。我的应用程序使用骆驼,配置了spring XML。我想创建一个带有依赖关系的可执行jar,所以我使用带jar-with-deps描述符的maven-assembly插件。 该jar建立好了,但我认为,因为所有的依赖关系得到解包,其中一些具有与其他人相同的路径相同的资源,然后他们相互覆盖。我通过使用winrar浏览jar来验证这一点,并且在许多地方发现了多个相同文件的出现。我想这是无法解决的一些简单的maven配置,因为我不能停止依赖想要在特定路径的资源,也使用另一个依赖项。顺便说一下,这个应用程序在netbeans里运行正常。此外,我看到了我的应用程序类的多个出现。这更奇怪,但我不知道为什么。maven-camel构建问题

所有的一切,我想知道:

  1. 有没有发现这种冲突的任何简单的解决办法,并至少报告他们如果不纠正呢? (以及如何)

  2. 我可以告诉archiver(在maven中)不要拆开deps,而只是将jar包括在父jar中,然后将jar包括在manifest classpath中,以及如何?这会解决问题还是具有相同的结果?

  3. 为什么我的应用程序类在同一个路径中还有多次出现?

为了给你的问题的一个图象,目前得到的罐子中,当用WinRAR viewd,在根路径“log4j.properties”的3个实例和文件7层的实例中的元“spring.schemas” -inf /路径,仅举几例。

回答

1

我不认为这是可能的.zip所有.jar成一个单一的.jar。这些.jar中的很多资源都位于相同文件夹中的.jar文件(log4j.properties,spring XML文件)中,因此会有冲突。

它更好提供启动脚本,可以通过设置类路径来启动您的应用程序。我记得在JDK1.5中,或者它是1.6,你可以设置一个文件夹作为类路径,它将包括这个文件夹中的所有jar。