2014-02-06 2 views
0

: 내 부모에메이븐 실행 종속의 mangement의 artiafctId 내 부모의 자녀에

<project> 
... 
<dependencies> 
    <dependency> 
     <groupId>${parent.groupId}</groupId> 
     <artifactId>${parent.artifactId}-war</artifactId> 
     <type>war</type> 
    </dependency> 
</dependencies> 
... 
</project> 

:

<project> 
... 
<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>${project.groupId}</groupId> 
      <artifactId>myproject-war</artifactId> 
      <version>${project.version}</version> 
      <type>war</type> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 
... 
</project> 

<artifactId>myproject-war</artifactId> 
(부모의)를 사용하는 이유를 궁금해

이 작동 중이며 사용 중입니다.

<artifactId>${project.artifactId}-war</artifactId> 

[0] 'dependencies.dependency.version' is missing for be.lab:myproject-war:war 
+0

최신 Maven을 사용하고 있습니까? – MariuszS

+0

2.2.1을 사용하고 있습니다. – tweetysat

+0

Maven 버전을 업데이트 할 수 있습니까? 우리 중 대부분은 최신/권장 Maven 버전을 사용합니다. – MariuszS

답변

0

당신은 당신의 설정에 대해 생각해야 작동하지 않습니다. 외에도 지난 메이븐 버전 (3.1.1)으로 업데이트에서 ..

root -- pom.xml 
    +--- m1 (pom.xml) 
    +--- m2 (pom.xml) 
    +--- m3 (pom.xml) 

당신의 루트 (부모)은 다음과 같습니다

:

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

    <groupId>com.soebes.maven.training</groupId> 
    <artifactId>parent</artifactId> 
    <packaging>pom</packaging> 
    <version>1.0.0-SNAPSHOT</version> 

    <modules> 
    <module>m1</module> 
    <module>m2</module> 
    <module>m3-war</module> 
    </modules> 

    ... 
</project> 

전형적인 차일

이 THS처럼 보인다 다음과 같이 자식들 사이의 종속성을 정의하는 것이 좋습니다.

<project ..> 

<modelVersion>4.0.0</modelVersion> 

<parent> 
    <groupId>com.soebes.maven.training</groupId> 
    <artifactId>m1</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 

<artifactId>m1</artifactId> 

</project> 

타 아이에 대한 종속성이 아이는 다음과 같습니다 ${parent.*} 같은 것들의

<project ..> 

<modelVersion>4.0.0</modelVersion> 

<parent> 
    <groupId>com.soebes.maven.training</groupId> 
    <artifactId>m1</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 

<artifactId>m2</artifactId> 

<dependencies> 
    <dependency> 
    <groupId>${project.group}</groupId> 
    <artifactId>m1</artifactId> 
    <version>${project.version}</version> 
    </dependency> 
</dependencies> 

</project> 

또한 사용은 좋은 방법이 아닙니다.

<project ..> 

<modelVersion>4.0.0</modelVersion> 

<parent> 
    <groupId>com.soebes.maven.training</groupId> 
    <artifactId>m1</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 

<artifactId>m3-war</artifactId> 

<dependencies> 
    <dependency> 
    <groupId>${project.group}</groupId> 
    <artifactId>m2</artifactId> 
    <version>${project.version}</version> 
    </dependency> 
</dependencies> 

</project> 

내가 <artifactId>${parent.artifactId}-war</artifactId>처럼 같은 구조를 사용하지 않는 것이 좋습니다 :

그리고 그 전쟁 모듈을 살펴 가지고 있습니다. 이러한 상황에서 더 나은 사용은 단순히 <artifactId>module-war</artifactId>을 많이 저장하지 않을 수 있습니다.