2009-10-09 12 views
79

Stawiam na to, że Maven buduje klaster amatorskiego, słabo napisanego i szczerze - prymitywnego kodu C/C++ (co oznacza trochę C, trochę C++). Problem polega na tym, że obecnie jest ich wiele w obiegu i nie można ich łatwo zastąpić. Budowa wymaga dużej wiedzy plemiennej (musisz przejść od kostki do kostki, aby dowiedzieć się, jak skompilować/zbudować różne części), a uwolnienie jest całkowitym koszmarem. (Nie - nie zamierzam tego przepisywać, plz nie pytam) Moje pytanie brzmi - czy powinienem użyć maven-native-plugin, aby zastąpić wiele krótkich plików Makefile lub użyć exec-maven-plugin, aby je po prostu wykonać? Mam do tej pory pretty good experience z tym ostatnim robi .NET i nie wiem, czy powinienem zainwestować w wtyczkę native lub zostać z exec? Jeśli miałeś doświadczenie z "Mavenizing" C/C++, chciałbym zasięgnąć porady.Używanie Mavena do projektów C/C++

+0

Właśnie mam tego spróbować. Jak widzę, jest on nadal utrzymywany, aw międzyczasie poruszył się: http://github.com/sonatype/maven-nar-plugin – espakm

Odpowiedz

83

Bardzo polecam maven-nar-plugin. Uważam, że jest to lepsze pod wieloma względami alternatywy. Nie wymaga wystawiania plików źródłowych, obsługuje wielu systemów operacyjnych i architektur, obsługuje testów jednostkowych i integracyjnych oraz generalnie podąża za "maven way". Wprowadza nowy rodzaj opakowania - NAR lub "rodzime archiwum", które zawiera artefakt, na którym Ci zależy (.dll, .so, .a, .exe, itp.), Ale także metadane, nagłówki itp. sposób, który ma sens.

To wymaga trochę pracy z przodu, aby spakować oprogramowanie firm trzecich do NAR, ale jest całkiem proste. Gdy są już Nars, wystarczy użyć zwykłego mechanizmu zależności Maven do łączenia się z nimi, na przykład:

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

Jedną wadą jest to, że nie wydaje się być aktywnie utrzymane, ale jest w pełni funkcjonalny i jest raczej imponujący przykład tworzenia wtyczek Mavena.

+0

Dzięki za wskazówkę - na pewno to sprawdzę! – Bostone

+0

Mam zamiar zaakceptować to jako odpowiedź - to rzeczywiście wydaje się być lepsze niż maven-native-plugin – Bostone

+0

Powodzenia. Jedna rzecz do zapamiętania - dziś rano otrzymałem powiadomienie (jak przypadkowo), że błąd, który przedłożyłem rok temu, został rozwiązany dzisiaj - konserwacja wydaje się być reaktywna. – SingleShot

Powiązane problemy