Erstellen Sie ein Multiple-Modul-Projekt mit Maven

View more categories:

1- Die Vorstellung

Das Dokument wird auf die Quelle von .. geschrieben
  • Eclipse 4.6 (NEON)

Sie sind dabei, das erweiterte Dokument über Maven zu sehen. Wenn Sie als den Anfänger mit Maven sind, sollen Sie die Führungsdokument der Maven für die Anfänger ( Hello world Maven) sehen bei :

2- Das Modellsbeispiel

Das ist die Modelle des Beispiel im Dokument
Das Ziel von der Führung ist:
  1. Wie benuzt eine Module die andere Module in Maven
  2. zugleiche Einpackung der unterschiedlichen Module durch Maven (output file: jar, war).
MathWebApp: ist ein  Project WebApp 
MathLibrary: ist ein Project  Bibliothek , die die Utility- Class enthaltet, die von   MathWebApp.benutzt

MavenParent: ist ein Project mit der Aufgabe zur Einpackung der 2 oben Projekt. Das ist ein Vater Projekt. Und die 2 oben Projekt werden als seine Tochtermodule gesehen. MavenParent wird
  • Einpackung der MathLibary zur File  jar
  • Einpackung der MathWebApp zur File war.

3- Das Projekt MathLibrary erstellen

  • File/New/Other...
Das ist ein einfachers Project. Wir sollen das Archetyp (archetype) Maven nicht wählen

Wählen Sie 
  • Create a simple project (skip archetype selection)
Geben Sie ein
  • Group Id: org.o7planning
  • Artifact Id: MathLibrary
  • Packaging: jar
Ignorieren Sie die Information der Vater Module und wir werden es später installieren.
Das Project wird erstellt
Erstellen Sie eine Class  MathUtils:
MathUtils.java
package org.o7planning.mathutils;

public class MathUtils {

  public static int sum(int a, int b) {
      return a + b;
  }

}

4- Das Projekt MathWebApp erstellen

  • File/New/Other..
Wählen Sie das Archetyp (archetype) maven-archetype-webapp. Eclipse werden ein Project Maven erstellen, das die Struktur von einer Web Applikation hat
Geben Sie ein
  • Group Id: org.o7planning
  • Artifact Id: MathWebApp
  • Version: 0.0.2-SNAPSHOT
  • Package: org.o7planning.mathwebapp
Das ist die Foto von dem erstellten Project  MathWebApp  . Sie können die Nachricht des Fehler irgendwo im Project sehen. Sorgen Sie nicht dafür. Die Ursache ist, dass Sie die Bibliothek Servlet noch nicht anmelden
Eclipse , die das Project erstellt hat, kann die falsche Struktur haben. Sie sollen testen
  • Open file pom.xml
Ergänzen Sie
<dependency>
 <groupId>javax.servlet</groupId>
 <artifactId>javax.servlet-api</artifactId>
 <version>3.1.0</version>
 <scope>provided</scope>
</dependency>
Wie das folgende Beispiel
jetzt geht der Fehler weg
melden Sie mit Maven weiter an, MathWebApp benutzt  MathLibrary:
<dependency>
   <groupId>org.o7planning</groupId>
   <artifactId>MathLibrary</artifactId>
   <version>0.0.1-SNAPSHOT</version>
</dependency>
MathWebApp/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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.o7planning</groupId>
  <artifactId>MathWebApp</artifactId>
  <packaging>war</packaging>
  <version>0.0.2-SNAPSHOT</version>
  <name>MathWebApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
      </dependency>


      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.1.0</version>
          <scope>provided</scope>
      </dependency>
     
      <dependency>
          <groupId>org.o7planning</groupId>
          <artifactId>MathLibrary</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      </dependency>        
     
  </dependencies>
  <build>
      <finalName>MathWebApp</finalName>
  </build>
</project>
Benutzen Sie die Utility- Class ins Project MathLibrary um die File   index.jsp zu ändern
 
index.jsp
<html>
<body>
<h2>Hello World!</h2>

<%

int a = 100;
int b = 200;

int c = org.o7planning.mathutils.MathUtils.sum(a,b);

out.println("<h2>"+ c+"</h2>");

%>

</body>
</html>

5- Das Projekt MavenParent erstellen

Erstellen Sie ein normales Project
  • File/New/Other..
Klicken Sie die Rechtsmaustaste ins erstellte Project  MavenParent und dann wandeln Sie (convert) es zum Maven Project um
Geben Sie ein
  • Group Id: org.o7planning
  • Artifact Id: MavenParent
  • Version: 1.0.0-SNAPSHOT
  • Packaging: pom

6-  Maven die Beziehungen zwischen Projekte erklären

Das ist die kurze Bezeichnung der Konfigurierung der Maven und die Beziehungen zwischen die module (Project).
Öffnen Sie die File   pom.xml von 2 project MathLibrary & MathWebApp und dann wählen Sie:
<parent>
   <groupId>org.o7planning</groupId>
   <artifactId>MavenParent</artifactId>
   <version>1.0.0-SNAPSHOT</version>
   <relativePath>../MavenParent/pom.xml</relativePath>
</parent>
Öffnen Sie die File   pom.xml von  MavenParent und ergänzen Sie:
<modules>
  <module>../MathLibrary</module>
  <module>../MathWebApp</module>
</modules>
MathLibrary/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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>org.o7planning</groupId>
 <artifactId>MathLibrary</artifactId>
 <version>0.0.1-SNAPSHOT</version>


 <parent>
     <groupId>org.o7planning</groupId>
     <artifactId>MavenParent</artifactId>
     <version>1.0.0-SNAPSHOT</version>
     <relativePath>../MavenParent/pom.xml</relativePath>
 </parent>

</project>
MathWebApp/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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.o7planning</groupId>
  <artifactId>MathWebApp</artifactId>
  <packaging>war</packaging>
  <version>0.0.2-SNAPSHOT</version>
  <name>MathWebApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
      </dependency>


      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.1.0</version>
          <scope>provided</scope>
      </dependency>

      <dependency>
          <groupId>org.o7planning</groupId>
          <artifactId>MathLibrary</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      </dependency>

  </dependencies>

  <parent>
      <groupId>org.o7planning</groupId>
      <artifactId>MavenParent</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <relativePath>../MavenParent/pom.xml</relativePath>
  </parent>

  <build>
      <finalName>MathWebApp</finalName>
  </build>
</project>
MavenParent/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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.o7planning</groupId>
  <artifactId>MavenParent</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>


  <modules>
      <module>../MathLibrary</module>
      <module>../MathWebApp</module>
  </modules>

</project>

7- Die Module einpacken

Klicken Sie die Rechtmaustaste ins Project  MavenParent  und dann wählen Sie :
  • Run As/Maven install.
Das Ergebnis

View more categories: