2012-02-07 4 views
0

私は時々彼らの解決の依存関係に次の両方で終わるプロジェクト参照:バージョン番号は、基本的に名前の一部であるため異なるOracleドライバ間で競合を発生させるためにIvyを設定するにはどうすればよいですか?

org="com.oracle" name="ojdbc14" 
org="com.oracle" name="ojdbc6" 

を、通常の競合解消方法は、これを検出したり解決しません。

これを処理するようにIvyを設定することはできますか?ビルドを壊すだけでもうまくいくでしょう。

(名前を変更すると、この時点でオプションではありません。私は単に手動のものを除く以外の何かを探しています。)私はあなたがツタのみの使用を確保することを好むだろうと仮定してい

+0

その場合、最も簡単な解決策は、あなたのツタのファイルでグローバルレベルexclude文ですか?あなたのリポジトリにバージョン番号がありませんか? – oers

+0

両者ともバージョン番号を持っていますが、関連性がないと思われるので、私はその番号を残しました。問題は、その名前にJRE互換バージョンである「14」と「6」です。同時にクラスパス上に両方を持つことは理にかなっていません。しかし、Ivyは彼らが2つの異なるモジュールであり、これに問題がないと考えています。 –

答えて

1

これらのJDBC jarを使用し、他のJDBC jarを除外しますか?あなたが最初の場所でそれらを取得しない方法

<dependencies> 
    <dependency .. 
    <dependency .. 
    <dependency .. 

    <exclude org="com.oracle" module="ojdbc14"/> 
</dependencies> 
+0

私はそれがオプションであることを知っています。私は手動でそれらの1つを除く以外の何かを探しています。 –

+0

あなたの質問に正しく記述されているように、競合解消機能は通常、同じモジュールのバージョンに適用されます。 Configurationsは、Mavenのスコープ機構に似ている、異なるモジュールをまとめてグループ化する唯一のメカニズムです。両方のライブラリを参照するMavenモジュールの例がありますか?おそらく、構成マッピングに基づいて1つを除外することは可能です。 –

関連する問題