2017-01-18 1 views
0

Es gibt ein Maven-Projekt, das früher den JAR-Verpackungstyp hatte. Jetzt hat sich das Projekt weiterentwickelt, und es ist erforderlich, dass es als EAR erstellt wird, einschließlich der eigentlichen JAR und ihrer Abhängigkeiten.Aufbau von EAR aus einem einzigen Maven-Projekt

Muss ich unbedingt das zweite POM mit EAR-Verpackungstyp einführen? Ist es möglich, JAR + EAR aus einem einzigen Maven-Projekt zu erstellen? Der Grund dafür ist, dass ich meine Repository-Struktur nicht radikal reorganisieren möchte.

Wenn nicht möglich, würde ich die Projektstruktur irgendwie reorganisieren müssen, um Maven-Module zu verwenden. Welche (Sub-) Modulstruktur würden Sie in diesem Fall empfehlen?

+0

Im Allgemeinen können Sie, aber es ist keine gute Idee ... besser ist es, ein Modul mit der Ohrverpackung und ein mit Glasverpackung und Elternteil zu schaffen, die alle zusammen bindet ... Trennung der Sorgen ... – khmarbaise

Antwort

1

Sie 3 pom bauen müssen, hier ist ein funktionierendes Beispiel;

POM 1 ist die Mutter

<?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> 

POM 2 ist das Glas oder Krieg

<?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> 

Pom 3 ist das Ohr, die eine Abhängigkeit in das Gefäß/Krieg hat

<?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

Ich glaube, Sie Maven Krieg Plugin kann jedes Mal eine einzelne WAR-Datei generieren Sie das Projekt

<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> 

Verwandte Themen