Estou colocando a construção do Maven em torno de um cluster de código amador, mal escrito e, francamente, primitivo C / C ++ (ou seja, alguns C, alguns C ++). O problema é - há muito dele em circulação atualmente e não pode ser facilmente substituído. Construí-lo requer muito conhecimento tribal (você tem que ir de cubo em cubo apenas para descobrir como compilar / construir várias partes) e liberar é um pesadelo total. (Não - não vou reescrevê-lo, por favor não pergunte) Minha pergunta é - devo usar maven-native-plugin
para substituir vários makefiles curtos ou usar exec-maven-plugin
simplesmente para executá-los? Tive uma experiência muito boa até agora com o último fazendo .NET e não sei se devo investir no native
plugin ou ficar com ele exec
? Se você tiver experiência com "Mavenizing" C / C ++, eu adoraria receber alguns conselhos.
fonte
Respostas:
Eu recomendo fortemente o plugin maven-nar . Acho que é superior em muitos aspectos às alternativas. Não requer a listagem de arquivos de origem, lida com vários sistemas operacionais e arquiteturas, lida com testes de unidade e integração e geralmente segue "o caminho do maven". Ele apresenta um novo tipo de pacote - o NAR, ou "arquivo nativo", que contém o artefato de seu interesse (.dll, .so, .a, .exe, etc.), mas também metadados, cabeçalhos, etc. em um maneira que faz sentido.
Requer um pouco de trabalho inicial para empacotar software de terceiros em NARs, mas é bastante simples. Uma vez que eles são NARs, você simplesmente usa o mecanismo de dependência normal do Maven para se vincular a eles, por exemplo:
<dependency> <groupId>cppunit</groupId> <artifactId>cppunit</artifactId> <scope>test</scope> </dependency>
Uma desvantagem é que ele não parece ser mantido ativamente, mas é cheio de recursos e é um exemplo bastante impressionante de criação de plug-in Maven.
fonte