C / C ++ 프로젝트에 Maven 사용


85

나는 아마추어 클러스터를 중심으로 Maven 빌드를 작성하고 있으며, 잘못 작성되고 솔직히 기본 C / C ++ 코드 (일부 C, 일부 C ++ 의미)입니다. 문제는 현재 유통되고 있으며 쉽게 교체 할 수 없다는 것입니다. 그것을 구축하려면 많은 부족 지식이 필요하며 (여러 부분을 컴파일 / 빌드하는 방법을 알아 내기 위해 큐브에서 큐브로 이동해야합니다) 릴리스는 완전히 악몽입니다. (아니요-다시 작성하지 않을 것입니다. plz는 묻지 않습니다.) 제 질문은- maven-native-plugin여러 개의 짧은 메이크 파일을 대체 하는 데 사용해야합니까 아니면 exec-maven-plugin단순히 실행 하는 데 사용해야 합니까? 나는 지금까지 .NET을 사용하는 후자에 대해 꽤 좋은 경험을 가지고 있었고 native플러그인에 투자 해야하는지 아니면 계속 유지 해야하는지 모르겠습니다 exec. "Mavenizing"C / C ++에 대한 경험이 있다면 조언을 받고 싶습니다.


나는 그것을 시도하려고합니다. 보시다시피, 그것은 여전히 ​​유지되고 있고 그동안
espakm

답변:


90

maven-nar-plugin을 적극 권장합니다 . 나는 그것이 여러면에서 대안보다 우월하다고 생각합니다. 소스 파일을 나열 할 필요가없고 여러 OS 및 아키텍처를 처리하고 단위 및 통합 테스트를 처리하며 일반적으로 "메이븐 방식"을 따릅니다. 여기에는 관심있는 아티팩트 (.dll, .so, .a, .exe 등)와 메타 데이터, 헤더 등이 포함 된 NAR 또는 "네이티브 아카이브"라는 새로운 종류의 패키징이 도입되었습니다. 의미가 있습니다.

타사 소프트웨어를 NAR로 패키징하려면 약간의 선행 작업이 필요하지만 매우 간단합니다. NAR이되면 일반적인 Maven 종속성 메커니즘을 사용하여 연결합니다. 예를 들면 다음과 같습니다.

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

한 가지 단점은 적극적으로 유지 관리되지 않는 것처럼 보이지만 모든 기능을 갖추고 있으며 Maven 플러그인 저작의 인상적인 예입니다.


팁 주셔서 감사합니다-꼭 확인해 보겠습니다!
Bostone

나는 이것을 대답으로 받아 들일 것입니다-이것은 실제로 maven-native-plugin보다 우월한 것 같습니다
Bostone

행운을 빕니다. 한 가지 주목할 점은 오늘 아침에 1 년 전에 제출 한 버그가 오늘 해결되었다는 알림을 받았습니다 (우연히 일치 함). 유지 관리가 반응 한 것 같습니다.
SingleShot

2
받는다는 - NAR-플러그인과 같은 활동은 sonatype에 의해 현재 유지되고 : issues.sonatype.org/browse/NAR을
토미 chheng

1
nar-maven-plugin의 예제를 사용할 때 다음을 수행하여 작동합니다. mvn package-이것은 테스트 패키지를 생성하고 NarSystem에 의존하는 테스트를 실행할 수 있습니다
serup
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.