C / C ++プロジェクトでのMavenの使用


85

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


私はちょうどそれを試してみようとしています。私が見るように、それはまだ維持されており、その間にここに移動しました:github.com/sonatype/maven-nar-plugin
espakm

回答:


90

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

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

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

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


ヒントをありがとう-私は間違いなくそれをチェックします!
ボストン2009年

私はこれを答えとして受け入れるつもりです-これは確かにmaven-native-pluginよりも優れているようです
Bostone 2009年

幸運を。注意すべき点の1つは、1年前に提出したバグが本日解決されたという通知を今朝(偶然に)受け取ったということです。メンテナンスが反応したようです。
シングルショット2009年

2
maven-nar-pluginは現在sonatype
tommy chheng 2011

1
nar-maven-pluginの例を使用する場合は、次のように機能します。mvnpackage-これによりテストパッケージが生成され、NarSystemに依存するテストを実行できます
serup
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.