Я помещаю сборку Maven вокруг кластера любительского, плохо написанного и откровенно примитивного кода C / C ++ (то есть немного C, немного C ++). Проблема в том, что их сейчас в обращении много, и их нелегко заменить. Для его создания требуется много племенных знаний (вам нужно переходить от куба к кубу, чтобы узнать, как компилировать / собирать различные части), а выпуск - полный кошмар. (Нет - я не собираюсь его переписывать, пожалуйста, не спрашивайте) У меня вопрос - следует ли мне использовать maven-native-plugin
для замены множества коротких make-файлов или exec-maven-plugin
просто выполнять их? У меня до сих пор был довольно хороший опыт работы с последним, занимающимся .NET, и я не знаю, стоит ли мне инвестировать в native
плагин или оставаться с ним exec
? Если у вас есть опыт работы с "Mavenizing" C / C ++, я хотел бы получить совет.
источник
Ответы:
Я очень рекомендую maven-nar-plugin . Я считаю, что он во многих отношениях превосходит альтернативы. Он не требует перечисления исходных файлов, поддерживает несколько операционных систем и архитектур, выполняет модульные и интеграционные тесты и, как правило, следует «пути maven». Он вводит новый вид упаковки - NAR, или «собственный архив», который содержит артефакт, который вам нужен (.dll, .so, .a, .exe и т. Д.), А также метаданные, заголовки и т. Д. В файле это имеет смысл.
Для упаковки стороннего программного обеспечения в NAR требуется небольшая предварительная работа, но это довольно просто. Как только они являются NAR, вы просто используете обычный механизм зависимостей Maven для связи с ними, например:
<dependency> <groupId>cppunit</groupId> <artifactId>cppunit</artifactId> <scope>test</scope> </dependency>
Одним из недостатков является то, что он, похоже, не поддерживается активно, но он полнофункциональный и является довольно впечатляющим примером разработки плагина Maven.
источник