2008-12-20 118 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。