6

私は自分のプロジェクトを定義するためにMavenを使用しています。私の依存関係の1つは、実行時にネイティブDLLを必要とするため、テストやデバッグに必要です。ネイティブDLLは、既知の場所で入手できます。一度チェックインでき、各開発者が手動で設定しなくてもすべての開発者が使用できるソリューションが必要です。

「実行構成」でjava.libary.pathを手動で設定できることはわかっています。これにより、ネイティブDLLを見つけることができますが、これには、開発者ごとに手動でセットアップする必要があります。

特定のプロジェクトの依存関係にjava.library.pathを設定することもできますが、これも特定の開発者にとってローカルです。

最後に、java.library.pathを指定するようにsurefireプラグインを設定できることはわかっていますが、これはmavenを介してトリガーされるテストにのみ役立ちます。したがって、ビルドサーバーには最適ですが、EclipseでJUnitランナーを使用する開発者には役立ちません。または、Eclipseから直接コードをデバッグまたは実行したい。

抜け道はありますか?

4

2 に答える 2

5

maven-nativedependencies-pluginに付属するEclipsem2eコネクターがこれを修正しているように見えることがわかりました。

mavennativesのドキュメントによると:

m2eclipseがインストールされていてnativedependenciesプラグインが構成されている場合、バージョン0.0.7のmaven-nativedependencies-pluginはネイティブの解凍を自動的に実行するため、それらを解凍するためにeclipseプラグインは必要ありません。ただし、Eclipseでjava.library.path環境変数を設定するには、Eclipseプラグインを使用して手動または自動で設定する必要があります。

このEclipseプラグインはm2eclipseの拡張機能であり、mavenプラグインが構成されているかどうかを検出し、構成されている場合は、ネイティブの解凍を実行し、ネイティブライブラリの場所を構成します。

mavennativesプラグインが構成されているmavenプロジェクトをインポートし、m2eclipse統合プラグインがある場合、インポート時にネイティブが抽出されます。また、Eclipseからのクリーンアップを実行すると、ネイティブが抽出されます。

したがって、これらのツールの両方を使用する場合、ネイティブの依存関係を使用する場合は、pomにあるもの以外は手動で構成する必要はなく、アプリを実行するだけで機能します。

コネクタをインストールし、MavennativesをPOMに追加してから、pomをリロードすると(パッケージエクスプローラーでプロジェクトを右クリック> maven>プロジェクトの更新)、プロジェクトの「ネイティブライブラリの場所」が自動的に入力されます(これを表示するには、プロジェクト>プロパティ>javaビルドパス>ライブラリ>ネイティブライブラリの場所を右クリックします)

ここに画像の説明を入力してください

これは、デバッグ、JUnitランナーなどで機能するようです。

すべての開発者がプラグインをインストールする必要があります。プラグインは手動です(Eclipseのインストールと同じくらい手動です)。ただし、一度インストールすると、POMを介してマベンナティブ用に構成されたすべてのネイティブ依存関係に対して機能します。

于 2013-03-07T15:59:21.863 に答える
2

Properties Mavenプラグインは、properties:set-system-propertiesを使用してシステムプロパティを設定することにより、システムプロパティを渡すのに役立つ場合があります。

例は次のようになります。-

<properties>
    <java.library.path>some/path</java.library.path>
</properties>

これがお役に立てば幸いです。

于 2013-03-07T12:41:57.073 に答える