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++
Odpowiedz
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.
Dzięki za wskazówkę - na pewno to sprawdzę! – Bostone
Mam zamiar zaakceptować to jako odpowiedź - to rzeczywiście wydaje się być lepsze niż maven-native-plugin – Bostone
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
- 1. Używanie Mavena do dystrybucji projektu
- 2. Używanie Mavena do pobierania słoików bibliotecznych
- 3. Zależności Mavena a zarządzanie zależnościami dla wielu projektów
- 4. Używanie wiki jako centralnego repozytorium projektów rozwojowych
- 5. Używanie pojedynczego serwera selerowego do wielu projektów Django
- 6. Używanie EDE do obsługi projektów cmake/C++ w emacs
- 7. Używanie CMake do generowania plików projektów Visual Studio C++
- 8. Używanie git-shell i ograniczanie programistów do zatwierdzania własnych projektów
- 9. Wykres zależności Mavena
- 10. Używanie wtyczki Cienia Mavena od Scala i sbt
- 11. mailto z wieloma adresami cc
- 12. Używanie różnych wersji Pythona dla różnych projektów w Eclipse
- 13. Jak dostosować CQRS do projektów?
- 14. Importowanie wielu projektów do eclipse
- 15. Jak zmusić Mavena 3.0.4 do używania Java7?
- 16. Jak programowo zadzwonić do Mavena-task
- 17. Prześlij artefakty do Nexusa, bez Mavena
- 18. Jak zmusić kompilację Mavena do awarii ostrzeżeń?
- 19. Instalowanie artefaktów Mavena do lokalnego repo programowo
- 20. Wtyczki Mavena do analizy jakości kodu javascript
- 21. Używanie alternatywnego kompilatora dla projektów Travis-CI R:
- 22. Używanie Mavena do utworzenia pliku zip zawierającego plik wykonywalny z zależnościami
- 23. Czy można użyć wywołania/cc do implementacji rekursji?
- 24. Jak powiedzieć CPAN o ścieżce do zrobienia i cc
- 25. wyślij e-mail do BCC i CC w Django
- 26. Jak zmusić Mavena do pobrania maven-metadata.xml z centralnego repozytorium?
- 27. Zależność Mavena i db4o
- 28. Zależność Mavena z MySQL
- 29. Używanie IoC do testowania jednostek
- 30. Różnica między CC, gcc i g ++?
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