問題タブ [maven-nar-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Maven NAR プラグインを使用した Windows での DLL とのリンク
Maven NAR プラグインを使用して、非常に単純な C++ プログラムを構築しようとしています。共有ライブラリを構築するための Maven モジュールと、ライブラリにリンクしてそれを使用する実行可能ファイルを構築するための別の Maven モジュールをセットアップしました。Mac でのビルドはうまく機能し、プログラムを実行できます。残念ながら、Windows (XP) で MS Visual C++ (無料版) を使用してビルドすると、リンカー エラーが発生して失敗します。2 つのマシンの構成 (OS とコンパイラ以外) の唯一の違いは、Windows マシンで Maven を使用してビルドする前に vcvars32.bat を実行することです。これが私が得ているエラーです:
NAR プラグインによって吐き出されるリンカー コマンドは次のようになります。
共有ライブラリ モジュールによって生成された DLL がリストされているはずですが、そこにはありません。DLL の NAR は、実行可能ファイルのターゲット ディレクトリに解凍されます。
Windows 用の NAR プラグインを構成する際のヘルプをいただければ幸いです。または、リンカーを適切に実行する方法を示すコマンド ラインが役立つので、NAR 構成をバックフィルしてそれを実現できます。ありがとう。
私の共有ライブラリ モジュール:
電卓.h
電卓.cc
pom.xml (スニペット):
私の実行可能モジュール:
main.cc
pom.xml (スニペット)
java - Maven pomファイルにNAR依存関係を追加するにはどうすればよいですか?
JNIを使用しようとしていますが、maven-nar-pluginを使用してC++コードをNARにパッケージ化しています。ここで、このコードを別のJavaプロジェクトに含めたいと思います。これを適切に行うにはどうすればよいですか?
java - maven-nar-plugin と native-maven-plugin、どちらが優れていますか?
JNI を使用する Java プロジェクトを作成します。プロジェクトをスタンドアロン アプリケーションとしてデプロイしたいのですが、一部のモジュールは他のアプリケーションのライブラリとしても使用される可能性があります。さまざまなプラットフォームをサポートしたいのですが、すべてが可能な限り簡単であるべきです。
私が見る限り、1年半更新されていないmaven-nar-pluginと、あまりユーザーフレンドリーではないように思われるnative-maven-pluginのどちらかを選択できます。
それらのいずれかについての経験や、私が使用すべき推奨事項はありますか?
java - Web アプリケーションでのネイティブ Maven アーティファクト (nar) の使用
maven-nar プラグインを使用してビルドおよびパッケージ化されたネイティブ共有ライブラリがあります。これはうまく機能し、Linux/MacOSX/Windows でビルドされます。また、共有ライブラリをラップする JNI ライブラリも定義しました。これも maven-nar を使用して構築されています。これらは両方とも NAR アーティファクトとして生成され、使用するには maven-nar プラグインが必要です。
この問題は、NAR パッケージ化されていないプロジェクトからこれらの NAR への依存関係を宣言するときに発生します。maven-nar プラグインが呼び出されないようです。プロジェクトのパッケージングを NAR に変更した場合にのみ、maven-nar プラグインが作動します。これにより、NAR 依存関係がある場合は、NAR パッケージが機能するために感染する必要があるように見えます。上流のすべてのプロジェクトは NAR パッケージ化する必要があります。これは正しいですか、それとも何か不足していますか?
maven-nar プラグインを使用して生成されたネイティブ共有ライブラリと JNI アーティファクトは、Web アプリケーション (つまり、WAR) で正常に使用できますか? それらをWARで使用および展開できる場合、それはどのように行われますか? それ以外の場合、ネイティブ ライブラリをアプリ サーバーの java.library.path のある場所に手動で配置する唯一のオプションはありますか?
NAR JNI アーティファクトに依存するプロジェクトの POM のスニペットを次に示します。
java - JNIライブラリをローカルのMavenリポジトリに追加する
Mavenを使用して、共有オブジェクト(.so)ファイルを含むJNIライブラリをプロジェクトに追加したいと思います。残念ながら、まだパブリックリポジトリにないので、ローカルリポジトリに自分でインストールして機能させる必要があると思います。
Mavenにネイティブ部分を含めてプロジェクトにバンドルする(そして最終的にはコピー依存関係プラグインでエクスポートする)にはどうすればよいですか?これは標準のJ2SEアプリ(Webアプリではありません)で、.jarがパッケージ化されていますか?
私が追加しようとしているライブラリは、知っておくと役立つ場合に備えて、junixsocketです。.so(ネイティブライブラリ)コンポーネントとJava.jarコンポーネントがあります。
ネイティブビルドをターゲットにしているように見えるmaven-nar-pluginに出くわしましたが、サードパーティのJNIライブラリをバンドルするのではなく、コードからJNIプロジェクトをビルドすることを目的としているようで、ジグソーパズルをつなぎ合わせることができません。 。
どうすればよいですか:
- これらをローカルリポジトリにインストールします。.soライブラリに応じて.jarを使用します。
- POMファイルに(.jarおよび.soへの)依存関係を含めます。
ありがとう。
java - Mavennarプラグインによって作成された依存関係が見つかりません
Javaコード(ネイティブメソッド)とCコードを使用してjniプロジェクトを作成しました。
maven narプラグインは、Javaコードのみを含むjarファイルと、適切なネイティブコードを含むnarファイルの両方を生成します。
ただし、このプロジェクト/モジュールを別のプロジェクトから参照したい場合、依存関係が見つからないというエラーが発生します。ローカルリポジトリを調べてみると、Javaコードとネイティブコードの両方のnarファイルしかないことがわかりました。この依存関係を参照するにはどうすればよいですか?ネイティブコードが自動的に含まれますか?
c++ - maven-nar-plugin を使用して Maven で C++ プロジェクトをビルドする
異なるコンパイラを使用して、異なるプラットフォーム用の C++ コードをビルドするために maven-nar-plugin を使用している人はいますか? 誰かがいる場合は、これに関する詳細を教えてください。mavenを使用してさまざまなプラットフォーム用に構築されたNARファイルをどのように作成できるか疑問に思っています。特定のプラットフォームでプロジェクトをビルドできるようにするには、そのプラットフォームでビルドを実行し、そのプラットフォームの特定のコンパイラとリンカーを使用する必要があることを私は知っています。しかし、私の経験はJavaプロジェクトとMavenに関連しており、すでにご存知のように、Javaはかなりプラットフォームに移植可能であるため、今まで薄いような問題は経験していません。そのため、maven-nar-plugin を使用してプロジェクトをビルドする方法についてのヘルプと詳細をいただければ幸いです。ありがとう
c++ - Maven NAR プラグイン: パスに DLL の依存関係が見つかりません
Maven と NAR プラグインを使用して DLL をビルドおよびテストしようとしています。私が構築している DLL は、NAR プラグインを使用して構築した別の DLL に依存しています。これが私のPOMです:
依存関係を削除するcom.mycompany:shared-library
と、呼び出したいコードも削除され、正常に動作します。ProjectTest
正常に動作し、想定どおりに動作します。しかし、依存関係が存在すると、maven は を見つけることができないため、テストを実行できませんshared-library
。エラーでクラッシュします0xc0000135
。
Maven をデバッグ モードで実行すると、テストをコンパイルすると、両方の DLL のヘッダー ファイルのインクルード パスがコンパイラ コマンドに正しく追加されることがわかります。テストをリンクすると、両方の DLL のエクスポート ライブラリがリンカー コマンドに正しく追加されます。問題は、Maven がテストを実行するときに発生します。Maven は DLL へのパスをシステム パスに追加しようとしますが、これを実行しますが、パスをmyproject
DLL に追加するだけです。shared-library
DLLへのパスは追加されません。したがって、クラッシュ。
これは maven-nar-plugin の既知の問題ですか? また、NAR プラグインのいくつかのフォークが浮かんでいることを示唆していると聞いたことがあります。この問題は、私が使用しているプラグイン以外のバージョンで修正される可能性がありますか? または、推奨できる回避策はありますか?
maven-2 - Maven: nar-plugin で、インクルードを取得する場所を指定できますか?
Java とネイティブ言語コード (主にネイティブ言語) の両方を持つ複数のサブモジュールとサブサブモジュールを含むプロジェクトがあります。このネイティブ コードを処理するには、maven-nar-plugin
. 現在、ローカル リポジトリにネイティブ コードをコンパイルするために必要なすべてのインクルードがありません。にディレクトリを指定して、maven-nar-plugin
その中にすべてを含める方法はありますか?
<systemIncludePaths>
モジュールの pom でandを使用し<includePaths>
ましたが、それでもコンパイルできませんでした。
これを行うためのより簡単な方法があれば、私が行っている方向よりも説明してください。
maven - Mavenエラーの説明が必要です
http://blog.bigpixel.ro/2012/07/building-cc-applications-with-maven/comment-page-1/#comment-8196
上記のmaven narプラグインの例に従っていますが、mvnパッケージを実行すると次のエラーが発生します
「アーティファクト net.sf.antcontrib:cpptasks-parallel:jar:1.0-beta-5-parallel-1-SNAPSHOT が見つかりませんでした」が、次のフォルダー ツリーとその内容が ~/.m2/repository に表示されます...何を与える?