2011-10-12 2 views
0

maven 응용 프로그램에서 작업 중입니다. 우리는 5 개의 모듈을 가지고 있으므로 우리 애플리케이션의 일부로 총 6 개의 pom.xml 파일이 있습니다.Maven : pom.xml 파일 내에서 다른 모듈을 사용하는 종속 태그 사용

<module>myware</module> 
<module>XMLModule</module> 
<module>Business</module> 
<module>Tests</module> 
<module>bayers</module> 

이 모든 모듈의 경우, 나는 부모 pom.xml 파일을 참조하는 상대 경로 태그를 언급했다.

많은 모듈에서 동일한 jar 파일이 필요한 경우 모든 pom.xml 파일에서 이에 대해 언급해야합니까 ?? 당신은 몇 가지 일반적인 라이브러리에 의존하는 경우

<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.1.1</version> 
    <type>jar</type> 
    <scope>compile</scope> 
</dependency> 

답변

3

는 종속 이러한 나열되어 또 다른 모듈을 만들고 이적으로 그들에게 를 끌어이 모듈에 의존 할 수있을 것입니다. 그러나 이것은 Maven의 모범 사례는 아니며 종속성을 명시 적으로 나열하고 이행적인 종속성에 의존하지 말 것을 권장합니다. 입니다. 예를 들어 note on dependency scopes을 참조하십시오.

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.1</version> 
      <!-- type and scope omitted since they use the default values --> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 
이 단지 한 곳에서 버전을 선언 할 수 있습니다

, 당신은 다음에 version 요소를 생략 할 수 있습니다 :

당신은 그러나 당신의 부모 치어의 dependencyManagement 요소를 사용하여 종속성 섹션를 조금 단순화 할 수 있습니다 모듈의 dependencies 섹션

<dependencies> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
    </dependency> 
</dependencies> 
+0

종속성은 일시적입니다. 따라서 Tests가 Business에 의존하면 Business의 모든 컴파일/런타임 종속성을 얻게됩니다. –

관련 문제