2009-10-09 2 views
79

아마추어이고 솔직하게 작성된 원시 C/C++ 코드 (일부 C, 일부 C++)의 클러스터에 Maven을 빌드합니다. 문제는 현재 유통되고 있으며 쉽게 교체 할 수 없다는 것입니다. 건물을 짓기 위해서는 다양한 부족 지식이 필요합니다 (다양한 파트를 컴파일/빌드하는 방법을 찾기 위해 큐브에서 큐브로 이동해야 함). 출시는 완전히 악몽입니다. (아니요 - 다시 쓰지 않을 겁니다. plz는 묻지 않습니다) 제 질문은 - maven-native-plugin을 사용하여 많은 수의 짧은 makefile을 대체하거나 exec-maven-plugin을 사용하여 간단히 실행해야합니까? 나는 pretty good experience을 가지고 있었고 후자는 .NET을 사용했고 native 플러그인에 투자해야하는지 또는 exec으로 머물러야하는지 알 수 없습니까? "Mavenizing"C/C++에 대한 경험이 있다면 몇 가지 조언을 듣고 싶습니다.C/C++ 프로젝트 용 Maven 사용

+0

나는 이제 막 시도하려고합니다. 내가 보는 바와 같이, 그것은 여전히 ​​유지 관리되며 여기에 이동했습니다 : http://github.com/sonatype/maven-nar-plugin – espakm

답변

83

나는 매우 maven-nar-plugin을 권장합니다. 나는 대안들에 비해 여러면에서 우월하다고 느낍니다. 그것은 소스 파일을 나열 할 필요가 없으며 여러 OS와 아키텍처를 처리하고 유닛 및 통합 테스트를 처리하며 일반적으로 "방법"을 따릅니다. 그것은 당신이 관심을 갖는 이슈 (.dll, .so, .a, .exe 등)뿐만 아니라 메타 데이터, 헤더 등을 포함하는 새로운 종류의 패키징, 즉 NAR 또는 "네이티브 아카이브"를 소개합니다. 그건 의미가 있습니다.

타사 소프트웨어를 NAR에 패키지화하려면 약간의 사전 작업이 필요하지만 매우 간단합니다.

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

한 가지 단점이 적극적으로 유지 될 나타나지 않는다는 것입니다,하지만 모든 기능을 갖춘이며입니다 : 그들은 NARS가되면, 당신은 단순히 예를 들어, 그들과 함께 연결하는 일반 메이븐 의존성 메커니즘을 사용하여 Maven 플러그인 제작의 다소 인상적인 예.

+0

팁 주셔서 감사합니다 - 나는 그것을 확실히 체크 아웃합니다! – Bostone

+0

저는 이것을 대답으로 받아 들일 것입니다 - 이것은 정말로 maven-native-plugin보다 우수합니다. – Bostone

+0

행운을 빕니다. 한 가지주의 할 사항 - 오늘 아침 (제가 우연히) 1 년 전에 제출 한 버그가 오늘 해결되었음을 알리는 알림을 받았습니다. 유지 관리가 반응을 보인 것 같습니다. – SingleShot

관련 문제