2010-07-21 3 views
0

"PARENT"라는 상위 웹 모듈이 있습니다. 그리고 나는 또 다른 웹 모듈 인 "CHILD"를 가지고있다. 학부모 모듈의 포장은 전쟁입니다. 어떻게하면 CHILD 모듈에 종속성을 추가 할 수 있습니까? 나는 다음을 시도했다. 그러나 그것은 효과가 없습니다.maven 웹 모듈 종속성

루트의 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>MY_App</groupId> 
<artifactId>MY_App</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>pom</packaging> 
<name>MY Application</name> 
<url>http://maven.apache.org</url> 
<repositories> 
    <repository> 
    <id>ibiblio</id> 
    <name>iBiblio Maven2 Repository</name> 
    <url>http://www.ibiblio.org/maven2</url> 
    </repository> 
    <repository> 
    <id>apache-repo</id> 
    <name>Apache Repository</name> 
    <url>http://people.apache.org/repo/m2-snapshot-repository</url> 
    </repository> 
</repositories> 
<modules> 
    <module>MY_PARENT</module> 
    <module>MY_CHILD</module> 
</modules> 
</project> 

부모 웹 모듈의 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> 
<modelVersion>4.0.0</modelVersion> 
<parent> 
    <artifactId>MY_App</artifactId> 
    <groupId>MY_App</groupId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 
<groupId>MY_App</groupId> 
<artifactId>MY_PARENT</artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>MY_PARENT Webapp</name> 
<url>http://maven.apache.org</url> 

</project> 

아이 웹 모듈의 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "> 
<modelVersion>4.0.0</modelVersion> 
<parent> 
    <artifactId>MY_App</artifactId> 
    <groupId>MY_App</groupId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 
<groupId>MY_App</groupId> 
<artifactId>MY_CHILD</artifactId> 
<packaging>war</packaging> 
<version>1.0-SNAPSHOT</version> 
<name>MY_CHILD Webapp</name> 
<url>http://maven.apache.org</url> 
<dependencies> 
    <dependency> 
    <groupId>MY_App</groupId> 
    <artifactId>MY_PARENT</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <type>war</type> 
    </dependency> 
</dependencies> 
</project> 

동안 내가 컴파일 오류가 발생하고 응용 프로그램을 포장 . 즉, CHILD 모듈은 PARENT 모듈의 클래스를 참조하지 않습니다.

참고 : 제한 사항으로 인해 "http://maven.apache.org/maven-v4_0_0.xsd"이 스키마 위치가 제거되었습니다.

답변

1

상위 프로젝트의 클래스는 사용할 수 없습니다. 콘텐츠는 상속되지 않으며 구성 (pom) 만 제공됩니다.

상위/하위 관계에서 상위 프로젝트는 일반적으로 구성을 지정하지만 내용이 없으므로 패키지 pom이 있습니다. 당신이 할 수있는 일

자식 프로젝트

<dependency> 
    <artifactId>MY_App</artifactId> 
    <groupId>MY_PARENT</groupId> 
    <version>1.0-SNAPSHOT</version> 
    <type>war</type> 
</dependency> 

에 종속성을 추가하지만 전쟁 안에 전쟁을 포장하는 것은 정말 우아하지 않다.

수행하기에 적합한 것은 받는다는이 항아리 포장에는 일반적인 세 ​​가지 모듈

<modules> 
    <module>common</module> 
    <module>war1</module> 
    <module>war2</module> 
</modules> 

를 가질 수 있고 종속성 일반적인 모두 다른 프로젝트 모두 war1 및 war2 참조로 사용되는 모든 자바 클래스를 포함 할 .

+0

두 번째로 (전쟁 의존성에 대한 유일한 "유효"유스 케이스는 오버레이이지만 더 우아하게 만들지는 못합니다). +1 (앞에서 주조). –