91

私はアマチュアのクラスターの周りに Maven ビルドを配置しています。問題は、現在流通していて、簡単に交換できないことです。それを構築するには、多くの部族の知識が必要であり (さまざまな部分をコンパイル/構築する方法を見つけるためだけに、キューブからキューブへと移動する必要があります)、リリースは完全な悪夢です。(いいえ - 書き直すつもりはありません。聞かないでください) 私の質問は -maven-native-plugin多数の短い makefile を置き換えるために使うべきexec-maven-pluginですか、それとも単にこれらを実行するために使うべきですか? これまでのところ、後者で.NETを使用してかなり良い経験をしnativeてきましたが、プラグインに投資する必要があるのか​​ 、そのままにしておくべきなのかわかりませexecん 「Mavenizing」C/C++ の経験があれば、アドバイスをいただければ幸いです。

4

2 に答える 2

93

maven-nar-pluginを強くお勧めします。多くの点で代替品よりも優れていると思います。ソース ファイルを一覧表示する必要はなく、複数の OS とアーキテクチャを処理し、単体テストと統合テストを処理し、通常は "maven の方法" に従います。これは、新しい種類のパッケージング (NAR、または「ネイティブ アーカイブ」) を導入します。これには、関心のあるアーティファクト (.dll、.so、.a、.exe など) だけでなく、メタデータ、ヘッダーなども含まれます。意味のある方法。

サードパーティのソフトウェアを NAR にパッケージ化するには、多少の事前作業が必要ですが、非常に簡単です。それらが NAR になったら、通常の Maven 依存関係メカニズムを使用してそれらとリンクするだけです。次に例を示します。

<dependency>
  <groupId>cppunit</groupId>
  <artifactId>cppunit</artifactId>
  <scope>test</scope>
</dependency>

1 つの欠点は、積極的に維持されていないように見えることですが、フル機能を備えており、Maven プラグイン オーサリングのかなり印象的な例です。

于 2009-10-09T05:34:12.453 に答える
1

Maven (Java) で同等のものを用意する。私のアドバイスは、ビルドと PKG の管理に CMake + CPM を使用することです。これは、C++ の世界で使用されるほとんどの共通ツールです。C++ 用の代替 Gradle も存在します。

便利なリンク: https://medium.com/swlh/cpm-an-awesome-dependency-manager-for-c-with-cmake-3c53f4376766

于 2021-08-08T17:03:37.440 に答える