2009-10-09 7 views
79

素人で、よく書かれていない素朴なC/C++コード(いくつかのC、いくつかのC++を意味する)のクラスタにMavenを構築しています。問題は - 現在流布しているものがたくさんあり、簡単に交換することはできません。それを構築するにはたくさんの部族の知識が必要です(さまざまな部分をコンパイル/ビルドする方法を知るためにはキューブからキューブに移動する必要があります)、リリースは完全な悪夢です。 私の質問は - maven-native-pluginを使って多数の短いメイクファイルを置き換えるか、または単にexec-maven-pluginを使ってこれらを実行するのですか?いいえ、私はそれを書き直すつもりはありません。 pretty good experienceこれまで.NETを行っていて、nativeプラグインに投資するか、execで泊まるべきかどうかわからないのですか? 「Mavenizing」C/C++の経験がある方は、アドバイスを受けたいと思っています。C/C++プロジェクト用Mavenの使用

+0

私はもう試してみようとしています。私が見ているように、それはまだ維持され、ここで移動している:http://github.com/sonatype/maven-nar-plugin – espakm

答えて

83

maven-nar-pluginを強くお勧めします。私はそれを多くの点で代替案よりも優れていると感じています。ソースファイルの一覧表示、複数のOSやアーキテクチャの処理、ユニットテストと統合テストの処理は不要で、一般的に「メイヴェン」に従います。気になるアーティファクト(.dll、.so、.a、.exeなど)だけでなく、メタデータ、ヘッダーなども含めた、新しい種類のパッケージ(NARまたは "ネイティブアーカイブ")を紹介します。それは理にかなっている。

サードパーティ製のソフトウェアをNARにパッケージ化するには、少し手間がかかりますが、かなり簡単です。

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

一つの欠点は、積極的に維持されることが表示されないことであるが、フル機能で、次のとおりです。彼らはのNARがしたら、あなたは単に例えば、それらとリンクする通常のMavenの依存関係のメカニズムを使用しますMavenプラグインオーサリングのかなり印象的な例です。

+0

チップのおかげで - 私は間違いなくそれをチェックアウトする! – Bostone

+0

私は答えとしてこれを受け入れるつもりです - これは本当にmaven-native-pluginよりも優れているようです。 – Bostone

+0

幸いです。 1つ注意すべき点 - 私は今朝(1年前に提出したバグが解決された)午前(どのように偶然)の通知を受けました。メンテナンスは反応したようです。 – SingleShot