2011-02-11 200 views
0

**請參閱結構與下述問題有關。 「=>」指的是依賴/類路徑條目解決依賴

我想通過我的自定義文件(具有相同名稱&包結構)覆蓋jar中的Test.java文件(稱爲original.jar)。例如Test.java文件是original.jar爲「org.sample.Test」上市,我已經創建了相同的名稱和封裝結構的文件我的項目中(比如項目「放心」),如org.sample.Test在在類路徑中的主項目的src目錄。

depends項目被另一個項目作爲jar(Depend.jar)使用,但是這個另一個項目(稱爲「Main」項目)沒有引用我在Depend項目中籤入的文件,而是引用了文件original.jar depends.jar(作爲依賴)。我應該如何解決它。

我不能使用子類覆蓋Test.java文件,因爲所有的方法都是靜態的。


結構: -

主項目=> Depend.jar Depends.jar => Original.jar


-Original.jar具有需要是Test.java文件覆蓋 -Depends.jar也具有相同的封裝結構,在Original.jar(org.sample)內Test.java文件 - 主項目應該是指的是從Original.jar檢查中依靠項目,而不是Test.java。原始將Depends中的項目被稱爲使用其他類從Original.jar除了Test.java文件

+0

創建jar with dependencies使用Original.jarmaven assembly pluginDepend.jar,在這個過程中,不包括Test.java我不理解一個詞 –

回答

0

這是我從你的問題理解。

Original.jar包含Test.javaDepend.jar取決於Original.jar。它還包含一個Test.javaMain.jarOriginal.jar

我們希望Main.jar使用的Depend.jarTest.java取決於Depend.jar(和transitively?)和不是Original.jar

這裏有幾個方法可以做到這個。

  • 如果Main.jar不需要Original.jarexcludeOriginal.jardependency聲明Depend.jar
  • 重新打包Original.jar排除Test.java
  • Original.jar
+0

選擇1 - 我cannnot刪除Depend.jar,因爲它擁有所有有用的在Original中使用。jar – user593029

+0

選項2重新包裝在我的情況下不是一個好的選擇,因爲它是第三方包,我們可以在發佈時使用它的新版本 – user593029

+0

選項3排除是不可能的,因爲它是由工具生成的,即wsdl2Java。 Acutally創建存根,並創建它們的依賴Java文件以支持存根類。我想知道如果我們無法使用maven依賴關係解決,是否有可能控制wsdl2java實用程序如何創建支持類 – user593029