問題タブ [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.

0 投票する
3 に答える
4030 参照

java - maven-nar-plugin と native-maven-plugin、どちらが優れていますか?

JNI を使用する Java プロジェクトを作成します。プロジェクトをスタンドアロン アプリケーションとしてデプロイしたいのですが、一部のモジュールは他のアプリケーションのライブラリとしても使用される可能性があります。さまざまなプラットフォームをサポートしたいのですが、すべてが可能な限り簡単であるべきです。

私が見る限り、1年半更新されていないmaven-nar-pluginと、あまりユーザーフレンドリーではないように思われるnative-maven-pluginのどちらかを選択できます。

それらのいずれかについての経験や、私が使用すべき推奨事項はありますか?

0 投票する
1 に答える
2555 参照

gcc - 相対デバッグ シンボル パスを強制する (maven-native-plugin)

Linux で共有ライブラリをコンパイルするために、 native-maven-pluginを使用しています。コンパイラ オプションを渡して-g、デバッグ シンボルの生成を有効にします。以下は POM からの抜粋です。

native-maven-pluginは、 gccを呼び出すときに常にソース ファイルへの絶対パスを使用します。これにより、デバッグ シンボルでも絶対パスが生成されます。nm -l libfoo.soデバッグ シンボルをリストした出力は次のようになります。

ご覧のとおり、ソース ファイル パスは絶対パスであり、ユーザー名とプロジェクト構造が含まれています。私はそれをしたくありません。デバッグ シンボルを相対パス名に変更するにはどうすればよいですか?

0 投票する
1 に答える
356 参照

maven - ネイティブ Maven プラグイン jni osx pom

c/cpp で記述された JNI ライブラリを Java プロジェクトに追加しようとしています。Java プロジェクトは Subsonic と呼ばれ、メディア サーバーです。.spc ファイルのサポートを追加したいので、それを実現するための JNI を書きました。私はmavenをよく理解していません。

これはディレクトリ構造です:

私の問題は、maven を私と連携させる方法がわからないことです。これは私の現在のpomファイルです:

心の広い人は、私にいくつかの指針を教えてください。私はmavenが嫌いだと思います:(

0 投票する
2 に答える
5336 参照

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.

出力共有ライブラリの名前を設定するにはどうすればよいですか?

0 投票する
1 に答える
276 参照

gcc - LD_LIBRARY_PATH ld を設定する必要を回避する方法 : collect2 が失敗する

リンク用の LD_LIBRARY_PATH に相当するコマンド ライン オプションはありますか?

環境変数の設定と maven が他のモジュールを壊す前の設定がサポートされていない native-maven-plugin を介してネイティブをビルドします。どちらかにする必要があります

  • native-maven-plugin の代替を見つける (長期的な解決策)
  • リンカ検索に必要なパスを追加するコマンド ライン オプションを見つける

私はもう試した:

  • --ライブラリパス
  • -L
  • --rpath-link, --rpath
  • -R

私が次のことを続けるたびに:

0 投票する
2 に答える
78 参照

maven - native-maven プラグインを使用して JNI .so を作成した後に JUnit テストを実行する方法

jni .so ファイルと java .jar ファイルの両方を作成するプロジェクトがあります。JUnit テストの実行を除いて、これはすべて期待どおりに機能しています。native-maven-plugin が .so ファイルを作成した後に JUnit テストを実行する必要があります。JUnit テストは、共有ライブラリが作成される前に実行されているため、新しい JNI メソッドが追加されると常に失敗します。2回ビルドする唯一のオプションですか? テストをスキップして一度ビルドしてから、テストを個別に実行するか、ビルドを再度実行してテストを実行することを意味しますか?

0 投票する
0 に答える
65 参照

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>