問題タブ [native-maven-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.
java - maven-nar-plugin と native-maven-plugin、どちらが優れていますか?
JNI を使用する Java プロジェクトを作成します。プロジェクトをスタンドアロン アプリケーションとしてデプロイしたいのですが、一部のモジュールは他のアプリケーションのライブラリとしても使用される可能性があります。さまざまなプラットフォームをサポートしたいのですが、すべてが可能な限り簡単であるべきです。
私が見る限り、1年半更新されていないmaven-nar-pluginと、あまりユーザーフレンドリーではないように思われるnative-maven-pluginのどちらかを選択できます。
それらのいずれかについての経験や、私が使用すべき推奨事項はありますか?
gcc - 相対デバッグ シンボル パスを強制する (maven-native-plugin)
Linux で共有ライブラリをコンパイルするために、 native-maven-pluginを使用しています。コンパイラ オプションを渡して-g
、デバッグ シンボルの生成を有効にします。以下は POM からの抜粋です。
native-maven-pluginは、 gccを呼び出すときに常にソース ファイルへの絶対パスを使用します。これにより、デバッグ シンボルでも絶対パスが生成されます。nm -l libfoo.so
デバッグ シンボルをリストした出力は次のようになります。
ご覧のとおり、ソース ファイル パスは絶対パスであり、ユーザー名とプロジェクト構造が含まれています。私はそれをしたくありません。デバッグ シンボルを相対パス名に変更するにはどうすればよいですか?
maven - ネイティブ Maven プラグイン jni osx pom
c/cpp で記述された JNI ライブラリを Java プロジェクトに追加しようとしています。Java プロジェクトは Subsonic と呼ばれ、メディア サーバーです。.spc ファイルのサポートを追加したいので、それを実現するための JNI を書きました。私はmavenをよく理解していません。
これはディレクトリ構造です:
私の問題は、maven を私と連携させる方法がわからないことです。これは私の現在のpomファイルです:
心の広い人は、私にいくつかの指針を教えてください。私はmavenが嫌いだと思います:(
java - Java JNI Maven native-maven-plugin - 共有ライブラリの最終名を設定する方法
ビルド プロセスを自動化する方法を確認するために、JNI と Maven をいじっています。出力ファイル名に関して、Linux プラットフォームでいくつかの問題が発生しています。Maven ビルド (以下は Linux プラットフォームの pom.xml) を実行すると、返される共有ライブラリ ファイル名はjniExampleNative.so
. それを使用してJavaプログラムを実行しようとすると、java.lang.UnsatisfiedLinkError: no jniExampleNative in java.library.path
. ファイルの名前を変更すると、機能しますlibjniExampleNative.so
。
作業ファイル名でファイルを自動的に作成するようにMavenをセットアップしたいのですが、方法がわかりません。オプションを設定してみlinkerFinalName
ました(以下のpom.xmlにコメントされています)が、The packaging for this project did not assign a file to the build artifact
.
出力共有ライブラリの名前を設定するにはどうすればよいですか?
gcc - LD_LIBRARY_PATH ld を設定する必要を回避する方法 : collect2 が失敗する
リンク用の LD_LIBRARY_PATH に相当するコマンド ライン オプションはありますか?
環境変数の設定と maven が他のモジュールを壊す前の設定がサポートされていない native-maven-plugin を介してネイティブをビルドします。どちらかにする必要があります
- native-maven-plugin の代替を見つける (長期的な解決策)
- リンカ検索に必要なパスを追加するコマンド ライン オプションを見つける
私はもう試した:
- --ライブラリパス
- -L
- --rpath-link, --rpath
- -R
私が次のことを続けるたびに:
maven - native-maven プラグインを使用して JNI .so を作成した後に JUnit テストを実行する方法
jni .so ファイルと java .jar ファイルの両方を作成するプロジェクトがあります。JUnit テストの実行を除いて、これはすべて期待どおりに機能しています。native-maven-plugin が .so ファイルを作成した後に JUnit テストを実行する必要があります。JUnit テストは、共有ライブラリが作成される前に実行されているため、新しい JNI メソッドが追加されると常に失敗します。2回ビルドする唯一のオプションですか? テストをスキップして一度ビルドしてから、テストを個別に実行するか、ビルドを再度実行してテストを実行することを意味しますか?
c - MavenでCプログラムを構築しますか?
Docker イメージをビルドする Maven プロジェクトがあります (fabric8 docker-maven-plugin を使用)。
ビルドの一環として、単純な C クラスをコンパイルします。
Maven ビルド中に Docker イメージにコピーされるバイナリに変換します。
これを行う最善の方法は何ですか?少なくとも 2 つの Maven プラグインは知っていますが、どれを使用すればよいか、どのオプションが必要なのかわかりません。Maven ビルドは Windows、Linux、または Mac で実行できますが、結果のバイナリは Linux (Opensuse) でのみ実行されます。
https://www.mojohaus.org/maven-native/native-maven-plugin/
https://github.com/maven-nar/nar-maven-plugin
たとえば、上記の 2 つのプラグインでは、pom.xml の最上位に<packaging>so</packaging>
or要素が必要なようですが、私の pom.xml には既に?があります。上記のプラグインは、独自の pom.xml で Maven サブモジュール プロジェクトに入れる必要がありますか?<packaging>nar</packaging>
<packaging>pom</packaging>