2011-02-11 22 views
0

**以下の問題に関連する構造を参照してください。 "=>"はdepedency/classpathエントリを指します依存関係を解決する

私のカスタマイズファイル(同名の&パッケージ構造)によってjarファイル内のTest.javaファイル(例えばoriginal.jar)を上書きしたかったのです。例えば、Test.javaファイルは "org.sample.Test"としてoriginal.jarで利用可能で、私はorg.sample.Testのような私のプロジェクト内に同じ名前とパッケージ構造を持つファイルを作成しました(プロジェクト "Depend"と言う)。クラスパスにあるメインプロジェクトのsrcディレクトリ。

依存プロジェクトは別のプロジェクトで消費されますが、この別のプロジェクト(「メイン」プロジェクトと呼ばれます)はプロジェクト依存プロジェクトにチェックインされたファイルを参照せず、内部にあるoriginal.jarファイルを参照します。 depend.jar(依存関係として)。どのように解決すればいいですか?

すべてのメソッドが静的であるため、Test.javaファイルをオーバーライドするためにサブクラスを使用することはできません。


構造: -

主プロジェクト=> Depend.jar Depends.jar => Original.jar


-Original.jarがあることが必要Test.javaファイルを持っています -Depends.jarには、Original.jar(org.sample)と同じパッケージ構造内のTest.javaファイルもあります。 - メインプロジェクトはOriginal.jarではなくDependプロジェクトでチェックされているTest.javaを参照する必要があります。 OriginalはDependsプロジェクトによって参照され、Test.javaファイル以外のOriginal.jarから他のクラスを使用します

+0

からTest.java除く、その過程で、Original.jarmaven assembly pluginDepend.jarを使用してjar with dependenciesを作成し、それはすべての有用なクラスを持っていると私はDepend.jarを削除cannnot –

答えて

0

これは私があなたの質問から理解するものです。

Original.jarに依存Depend.jarありTest.java 含まOriginal.jarがあります。また、Depend.jarに依存Main.jarありTest.java が含まれています(とtransitivelyは?)Original.jar

に我々はMain.jarはここではないOriginal.jar

Depend.jarTest.javaを使用したい行うにはいくつかの方法この。

  • Main.jarの場合はTest.java除くDepend.jar
  • 再パッケージOriginal.jardependency宣言からOriginal.jarexcludeOriginal.jarを必要としません。
  • は、私は言葉を理解していないOriginal.jar
+0

オプションの1-オリジナルで使用されています。jar – user593029

+0

オプション2 - 私の場合、再パックはサードパーティのパッケージであるため、良い選択ではありません。新しいバージョンがリリースされた時点で使用することがあります。 – user593029

+0

オプション3:ツールによって生成されたオプション、すなわちwsdl2Javaは除外できません。実際にスタブが作成され、スタブクラスをサポートするために依存するJavaファイルが作成されます。 maven依存関係を使って解決できない場合、wsdl2javaユーティリティでサポートされているクラスを作成する方法を制御することが可能かどうか疑問に思っていました – user593029

関連する問題