2017-01-18 1 views
0

JAR 패키징 유형을 사용했던 Maven 프로젝트가 있습니다. 이제 프로젝트는 진화했으며 JAR 고유성과 종속성을 모두 포함하여 EAR로 빌드해야합니다.하나의 Maven 프로젝트에서 EAR 빌드하기

EAR 패키징 유형의 두 번째 POM을 반드시 도입해야한다는 의미입니까? 단일 Maven 프로젝트에서 JAR + EAR을 빌드 할 수 있습니까? 그 이유는 내 저장소 구조를 근본적으로 재구성하고 싶지 않기 때문입니다.

만약 가능하지 않다면 어떻게 든 Maven 모듈을 사용하기 위해 프로젝트 구조를 재구성해야 할 필요가 있습니다. 이 경우 어떤 (하위) 모듈 구조를 권하고 싶습니까?

+0

일반적으로 당신은 좋은 생각이 아닙니다. 귀 포장재와 항아리 포장재와 모낭을 하나로 묶어 한개의 모듈을 만드는 것이 더 좋습니다. – khmarbaise

답변

1

을 구축 한 war 파일마다를 생성하는 받는다는 전쟁 플러그인을 사용할 수 있다고 생각, 여기에 동작하는 예제입니다;

POM 1 POM 2 병 또는 전쟁 POM 3 병/전쟁에 종속되어 귀에는

<?xml version="1.0"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
    <groupId>com.greg</groupId> 
    <artifactId>ear-example</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>example-jar</artifactId> 
    <packaging>jar</packaging> 

    <name>com.greg</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 

<?xml version="1.0" encoding="UTF-8"?> 
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.greg</groupId> 
    <artifactId>ear-example</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <name>ear-example</name> 
    <modules> 
    <module>example-jar</module> 
    <module>example-ear</module> 
    </modules> 

</project> 

부모에게 인

<?xml version="1.0"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
    <groupId>com.greg</groupId> 
    <artifactId>ear-example</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 

    <artifactId>example-ear</artifactId> 
    <packaging>ear</packaging> 

    <dependencies> 
    <dependency> 
     <groupId>com.greg</groupId> 
     <artifactId>example-jar</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-ear-plugin</artifactId> 
     <version>2.10.1</version> 
     <configuration> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 

</project> 
0

난 당신이 당신이 3 치어가 필요합니다 프로젝트를

<build> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-ear-plugin</artifactId> 
    <version>2.3.2</version> 
    <!-- configuring the ear plugin --> 
    <configuration> 
     <modules> 
     <!-- all your modles --> 
     </modules> 
    </configuration> 
    </plugin> 
</plugins> 

관련 문제