2014-11-28 2 views
5

나는 Maven에서 꽤 신참이다. 어쩌면 그게이 질문의 이유입니다.멀티 모듈 메이븐 프로젝트는 언제 사용해야합니까?

오늘 나는 Sonar Runner라는 프로젝트를 다운로드하려고했는데 어떻게 작동하는지 보았습니다. - API

  • 소나 러너 - 일괄
  • 소나 러너 - 유통
  • 소나 러너 - 구현
    • 수중 음파 탐지기 러너 :이 프로젝트는 4 개 서브 모듈을 가지고 있기 때문에 그것은 나를 위해 매우 이상한 경험이었다

      그들은 각각 17, 2, 8 및 13 개의 자바 파일을 가지고 있습니다.

      왜 이렇게 세밀한 지 궁금합니다. 나는 당신이 그들의 이유가 무엇인지 모른다는 것을 안다. 그러나 나는 이유가 무엇인지 궁금하다.

      지금까지는 프로젝트의 크기가 프로젝트의 다른 부분에서 일하는 이유 또는 별도 팀이라고 생각했습니다.

      그러나 프로젝트에 자바 파일이 40 개있는 경우 크기가 그럴 필요가 없습니다.

      하나의 큰 프로젝트 대신 다중 모듈 프로젝트를 사용하면 어떻게됩니까?

      Google에서 대답을 찾으려고했지만 운이 없었습니다.

      편집 : 내가 발견이 하나 Is there any benefit in using Maven Multimodule when working in a small application?

      하지만 여전히 프로젝트가 40 개 자바 파일을 가지고와. 그것을 4 개의 서브 모듈로 나누는 것은 나에게 어리석은 것처럼 보인다.

      다른 이점이 있습니까?

    답변

    5

    저는 오픈 소스 실험 만 해킹하고 있어도 거의 대부분 멀티 모듈 메이븐 프로젝트를하고 있습니다. 멀티 모듈 프로젝트를 수행하는

    가 많은 이유 : 코드의

    • 다른 부분은 서로 다른 환경에 관련된. 런타임시 필요한 것들로부터 API와 구현 또는 컴파일 타임 도구를 분리 할 수 ​​있습니다.
    • 다른 기능 구성 요소를 다른 모듈에 배치하는 것이 좋습니다.
    • 별도의 모듈에는 자체 버전 로드맵이있을 수 있습니다. 예를 들어 API는 오랜 기간 동안 매우 안정적으로 유지 될 수 있지만 구현이 자주 업데이트됩니다.
    • 단일 JAR 프로젝트를 수행하는 경우에도 테스트 도구 또는 별도의 샘플/데모/테스트가있는 별도의 모듈이 필요할 수 있습니다.
    • 모두를 필요로하지 않더라도이 단일 JAR을 사용해도 부모가 pom이고 자식이 jar 인 모듈을 만드는 것이 유용합니다. 그리고 조직 자료를 부모 pom으로 옮깁니다.
    • 순환 종속성이있는 경우 하나의 모듈을 여러 개로 분할해야 할 수 있습니다. A의 일부가 B이고 BA의 일부인 경우 AA1A2으로 분할해야 할 수 있습니다.
    • 저는 종종 수동으로 작성되고 생성 된 코드를 하나의 모듈에 섞어 놓는 것을 선호하지 않습니다.

    그리고 아마도 훨씬 더.

    이러한 이유는 너무나 오래 되었기 때문에 이미 부모/자식 설정부터 시작하는 것이 좋습니다. 내가 참여한 단일 프로젝트를 기억하지 못한다. 단일 모듈로 남을 것이다.

    두 개의 파일 프로젝트를 두 개의 모듈로 나누어도 나에게 비웃음이 들리지 않는다.

    관련 문제