2013-01-03 5 views
14

maven 다중 모듈 프로젝트를 가져 왔으며 일부 전이 종속성이 해결되지 않았습니다. 이 같은 프로젝트는 젠킨스/이클립스/콘솔을 기반으로합니다.IntelliJ 12 - maven 다중 모듈이 전이 종속성을 해결할 수 없습니다.

각 프로젝트를 두 가지 가져 오기를 개별적으로 가져 오려고 시도했지만 부모 POM 만 가져 오려고했습니다. 둘 다 작동하지 않습니다.

다음과 같은 구조를 가지고 있습니다 : Project AProject B은 공통 부모를 가지며이 둘 모두는이 부모에서 모듈로 정의됩니다. Project A에는 종속성 jackon-jar로, Project B이 없습니다. Project A에는 기본 범위의 jackson-jar가 포함되어 있습니다. 컴파일 중에 jar가 표시되고 테스트가 실행 중입니다. 이제 Project B 수입은 Project A이고 또한 잭슨 - 항아리를 사용합니다 - 그리고 여기에 문제가 있습니다 - Project B에 보이지 않는 잭슨 항아리 :(명시 적으로 Project B에서 지정하면 모두 정상적으로 작동하지만 Project A에서 전이 의존성이 자동으로 적용됩니다. ? ....

이 해결 방법은이 일반적인 문제입니다

다음

있습니다 POM 예 :

부모 :

<project ....> 
    <modelVersion>4.0.0</modelVersion> 

    <version>1.0-SNAPSHOT</version> 
    <groupId>miklas.test</groupId> 
    <artifactId>my-parent</artifactId> 
    <packaging>pom</packaging> 

    <modules> 
     <module>my-project-a</module> 
     <module>my-project-b</module> 
     <module>my-project-c</module> 
    </modules> 
</project> 

Proje CT-A

<project ....> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>miklas.test</groupId> 
     <artifactId>my-parent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>my-project-a</artifactId> 
    <packaging>jar</packaging> 

    <dependencies> 
     <dependency> 
      <groupId>org.jboss.resteasy</groupId> 
      <artifactId>resteasy-jackson-provider</artifactId> 
      <version>2.3.4.Final</version> 
     </dependency> 
    </dependencies> 

</project> 

프로젝트-B 아래

<project > 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>miklas.test</groupId> 
     <artifactId>my-parent</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>my-project-b</artifactId> 
    <packaging>jar</packaging> 

    <dependencies> 
     <dependency> 
      <groupId>miklas.test</groupId> 
      <artifactId>my-project-a</artifactId> 
      <version>${project.version}</version> 
     </dependency> 
    </dependencies> 

</project> 

또한 내 실제 프로젝트에서의 스크린 샷입니다 - 이것은 위의 간단한 예에서 Project B 될 것이다. 왼쪽에서 우리는 resteasy-jackoson-provider에 4 개의 종속 항아리가 있으며, 오른쪽에는 2 개의 항아리가 있다는 것을 알 수 있습니다. 두 뷰는 같은 ​​프로젝트 보이고있다 : 이제

enter image description here

Project A

이 인 IntelliJ (12)에서 버그가 수 있도록 나타납니다

enter image description here

+0

+1 상세하고 잘 설명한 질문 – Anonymoose

+0

도 참조하십시오. http://stackoverflow.com/a/11467266/32453 (힌트를 통해 "import maven3"help?) – rogerdpack

답변

8

에서 같은 스크린 샷이 http://youtrack.jetbrains.com/issue/IDEA-98425 참조를하고, 문제에 대한 투표를하시기 바랍니다 그것이 중요하다면.

+2

이것은 intellij를 사용하지 못하게하는 심각한 문제입니다. 일반 - 그들은 어떤 일도없이 빨리 그런 것들을 고쳐야 만 .... 잘 투표 할 것이다;) –

1

나를 위해 일한 http://youtrack.jetbrains.com/issue/IDEA-98425에서 해결 방법은 "settings - Maven - Multiproject build fail policy"로 이동하는 것입니다. "Fail At End"로 설정하십시오.

+2

내 경우에는 (그리고 다른 몇몇 사람들은) 도움이되지 않았다. –

+0

나도 그 후에 다시 실패했다. (얼마 후에 "부두 "import maven 3 사용", "Maven 프로젝트 도구 창 - 모든 maven 프로젝트 다시 가져 오기", "mvn install"명령 줄에서 토글 링하는 연습 (유용한 부분이 아직 확실하지 않음), 프로젝트를 다시 열고, 프로젝트, "설정 - 메이븐 - 리포지토리 - 로컬 - 업데이트 선택", 캐시를 무효화, "프로젝트 재 구축"무작위로 다시 작동. –

+0

그래 .... 비슷한 접근 시도했다. 잠시 후 내 프로젝트를 컴파일 할 수 있었고, 필자는 의무적 인 의존성을 제거하여도 다시 깨뜨릴 수 없었다. –

관련 문제