異なるコンパイラを使用して、異なるプラットフォーム用の C++ コードをビルドするために maven-nar-plugin を使用している人はいますか? 誰かがいる場合は、これに関する詳細を教えてください。mavenを使用してさまざまなプラットフォーム用に構築されたNARファイルをどのように作成できるか疑問に思っています。特定のプラットフォームでプロジェクトをビルドできるようにするには、そのプラットフォームでビルドを実行し、そのプラットフォームの特定のコンパイラとリンカーを使用する必要があることを私は知っています。しかし、私の経験はJavaプロジェクトとMavenに関連しており、すでにご存知のように、Javaはかなりプラットフォームに移植可能であるため、今まで薄いような問題は経験していません。そのため、maven-nar-plugin を使用してプロジェクトをビルドする方法についてのヘルプと詳細をいただければ幸いです。ありがとう
1 に答える
現在、maven-nar-pluginを使用して複数のプラットフォームバイナリを構築する最も確実な方法は、クロスコンパイルベースのソリューションを試みるのではなく、実際に異なるプラットフォームでそれを行うことです。
たとえば、ImageJプロジェクトは、maven-nar-pluginを使用して、Linux、OS X、Windows、32ビットおよび64ビットバージョン用の小さなネイティブランチャーを構築します。
これを実現するために、プロジェクトにはLinuxサーバー上のJenkins CIS、Jenkinsスレーブを備えたVirtualBox内のWindows 7 64ビットVM、およびOS XデスクトップJenkinsスレーブがあり、それぞれがそれぞれのプラットフォームのMavenビルドを実行します。
セットアップにはかなりの時間がかかりました。ImageJIssueTrackerのこのチケットに詳細な手順があります。
関連するメモとして、関心のある開発者のグループが最近maven-nar-pluginを復活させ、公式リポジトリを新しいmaven-nar組織に移行しました。関心のある項目の1つはクロスコンパイルです。これにより、Jenkinsスレーブに頼ることなく、同じプラットフォーム上で複数のAOLのネイティブバイナリを簡単に構築できます。しかし、多くの課題があり(たとえば、GCCは頻繁に動作を変更します)、それを行うのはまだ簡単ではありません。興味のある開発者を新しいmaven-nar-pluginメーリングリストのディスカッションに招待します!