2009-06-16 31 views
29

私は依存関係を管理するMavenを持つJavaプログラムを持っています。これらの依存関係の1つは、別のプログラム用のJNIラッパーです。 Mavenは関連するJARファイルへの参照を処理しますが、私は自分自身でDLLファイルを使いこなしています。MavenとDLLの依存関係を管理する

MavenにもDLLを処理させる良い方法はありますか?理想的には、DLLをJARファイルのようなローカルリポジトリにロードしたいと思っています。

答えて

32

あなたはこのような何かを試してみました:

<dependency> 
    <groupId>com.foo</groupId> 
    <artifactId>footron</artifactId> 
    <version>4.2</version> 
    <scope>runtime</scope> 
    <type>dll</type> 
</dependency> 

あなたはこのようなものでMavenのリポジトリに追加することができます。

mvn install:install-file -Dfile=footron.dll -DgroupId=com.foo -DartifactId=footron -Dversion=4.2 -Dpackaging=dll -DgeneratePom=true 

は、DLLをこれを行っていないが、このような何かが動作するはずです。

+0

実際には、思っていた時間を費やした後、JNIを介してDLLの必要性を取り除く努力に投資する価値があると判断しました。おそらく長期的に努力する価値があるでしょう。私は好奇心からあなたの提案を調べます。 – Kris

+3

@Kris、それはおそらく良い考えです。私はそれを示唆することを考えましたが、私は見たことのないコードを修正するよう人々に伝えることを習慣にしません。 AKA、Psychic code review – sal

+1

@sal、.dllファイルを管理しているので、自動的にSystem.loadLibrary()を呼び出しますか?それとも、System.loadLibrary()を呼び出す必要がありますか?私はdllが他のオブジェクトのためにロードされていることをどのように確認するのか疑問に思っています。 –