-
Maven et code natif
Bonjour à tous,
Je suis actuellement en train d'étudier la meilleur solution pour intégrer l'utilisation de code natif (C/C++ via JNI) dans mon projet Java dont le build est géré par maven.
J'ai vu que 2 plugins existaient :
maven-native-plugin
maven-nar-plgin
Quelles sont vos expériences sur le sujet ? Quelle est la meilleur solution d'après vous ?
-
Si j’ai bien compris, tu as du code Java/JEE et du code C/C++. Et tu t’interroges sur l’utilisation d’un et même système de build pour compiler à la fois du Java et du C/C++.
Dans ce contexte, je te donne mon retour d’expériences. Maven est un très bon et très complet système de build mais il doit être utilisé pour ce qu’il a été conçu, c’est à dire builder des applications Java/JEE reposant le standard préconisé par Maven. Sortie de ce contexte, Maven se montre très difficilement configurable et peu flexible car tout simplement il n’a pas été conçu pour cela. Malgré les deux plugins que tu cites, ce n’est pas naturel pour builder des application C/C++.
Et tu auras les mêmes soucis avec d’autres systèmes de build Java comme Ant/Ivy, Gradle, Kundo, Quokka, … ; car tout simplement ces systèmes adressent des cibles Java.
Je te conseille donc de ne pas hésiter à utiliser plusieurs systèmes de build comme Maven pour la partie Java couplé à un autre système de build pour le C/C++. Et dans l’environnement C, tu as comme en Java l’embarra des choix du makefile au autotools. Néanmoins, je te conseillerais maintenant le builder SCons, le plus puissant sur le marché.
Et tu pourras noter aussi d’ailleurs que SCOns peut aussi builder du Java mais bien sur, pas avec le même niveau de services que Maven.
-
Bonjour,
Je rejoins l'avis de Grégory sur le fait qu'actuellement maven 2 n'est pas mature pour gérer les projets C/C++. Il existe effectivement des plugins mais c'est pas encore complet comme par exemple pour la gestion des tests unitaires.
Pour avoir une vue de l'existant je te renvoie à la discussion Maven for Non Java Prjects.
Maintenant avec les travaux autour de maven 3, il y aura peut-être des améliorations...
Rémy