Ich setze Maven Build um Cluster von Amateur-, schlecht geschriebenem und ehrlich gesagt - primitivem C / C ++ - Code (was etwas C, etwas C ++ bedeutet). Das Problem ist, dass derzeit viel davon im Umlauf ist und nicht einfach ersetzt werden kann. Das Erstellen erfordert viel Stammeswissen (man muss von Würfel zu Würfel gehen, um herauszufinden, wie man verschiedene Teile kompiliert / baut) und das Freigeben ist ein totaler Albtraum. (Nein - ich werde es nicht umschreiben, bitte nicht fragen) Meine Frage ist - sollte ich verwenden maven-native-plugin
, um eine Vielzahl von kurzen Makefiles zu ersetzen oder exec-maven-plugin
um diese einfach auszuführen? Ich hatte bisher ziemlich gute Erfahrungen mit letzterem bei .NET und weiß nicht, ob ich in ein native
Plugin investieren oder bei bleiben soll exec
? Wenn Sie Erfahrung mit "Mavenizing" C / C ++ haben, würde ich gerne einen Rat bekommen.
quelle
Antworten:
Ich kann das Maven-Nar-Plugin nur empfehlen . Ich finde es in vielerlei Hinsicht den Alternativen überlegen. Es erfordert keine Auflistung von Quelldateien, behandelt mehrere Betriebssysteme und Architekturen, führt Einheiten- und Integrationstests durch und folgt im Allgemeinen "dem Maven-Weg". Es wird eine neue Art von Verpackung eingeführt - das NAR oder "native archive", das das Artefakt enthält, das Sie interessiert (.dll, .so, .a, .exe usw.), aber auch Metadaten, Header usw. in a Art und Weise, die Sinn macht.
Es erfordert ein wenig Vorarbeit, um Software von Drittanbietern in NARs zu packen, aber es ist ziemlich einfach. Sobald es sich um NARs handelt, verwenden Sie einfach den normalen Maven-Abhängigkeitsmechanismus, um eine Verknüpfung mit ihnen herzustellen. Beispiel:
Ein Nachteil ist, dass es nicht aktiv gewartet zu werden scheint, aber es ist voll funktionsfähig und ein ziemlich beeindruckendes Beispiel für das Verfassen von Maven-Plugins.
quelle