of 27 /27
Maven Einsteiger Workshop Platform Independent User Group Nürnberg 2006 Autor Thomas Schubert Rechtlich geschützt durch die GNU Free Documentation License

Einsteiger Workshop

Embed Size (px)

DESCRIPTION

Stand 2006

Text of Einsteiger Workshop

  • 1. MavenEinsteiger Workshop PlatformIndependent UserGroup Nrnberg 2006 Autor Thomas Schubert Rechtlich geschtzt durch dieGNU Free Documentation License

2. bersicht

  • Teil I
    • Hallo Welt alsStandaloneJava Anwendung
  • Teil II
    • Hallo Welt als Web Anwendung
  • Teil III
    • Hallo Welt als EJB Anwendung
  • Teil IV
    • Hallo Weltals EnterpriseAnwendung (ear)

3. Standalone Java Anwendung

  • Anlegen der Verzeichnisstruktur
  • Projektbeschreibung erstellen (pom.xml)
  • Erstellen der Quellen
  • Kompilieren der Anwendung
  • Erstellen von Testfllen
  • Testen der Anwendung
  • Projekterstellung ber Architekturvorlagen
  • Verpacken der Anwendung als Archiv
  • Verteilung der Anwendung ins Repository
  • Erstellen einer HTML Site

4. Anlegen der Verzeichnisstruktur

  • Folgende Kommandos in einer Shell ausfhren
  • mkdir workshopmaven
  • cd workshopmaven
  • mkdir hallowelt-java
  • cd hallowelt-java
  • mkdir src
  • mkdir srcmain
  • mkdir srcmainjava

5. Projektbeschreibung erstellen

  • Datei pom.xml im Projektverzeichnis anlegen
  • xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  • xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
  • 4.0.0
  • workshopmaven
  • hallowelt-java
  • 1.0-SNAPSHOT
  • Hallo Welt - Java
  • 2006
  • Standalone Java Anwendung, welche Hallo Welt ausschreibt.

6. Java Quellen erstellen

  • Verzeichnis fr Package erstellen:
  • mkdir srcmainjavaworkshopmaven
  • DateiHalloWelt.javaim Package erstellen
  • package workshopmaven;
  • public class HalloWelt{
  • public static void main( final String [] args ){
  • System.out.println("Hallo Welt");
  • }
  • }

7. Kompilieren der Anwendung

  • Im Projektverzeichnismvn clean compileausfhren
  • Als Ergebnis entsteht ein Verzeichnistargetmit Unterverzeichnisclassesin welchem das Package mit dem Kompilat abgelegt ist

8. Erstellen von Testfllen

  • Verzeichnisse anlegen
  • mkdir srcest
  • mkdir srcestjava
  • mkdir srcestjavaworkshopmaven
  • KlasseHalloWeltTest.javadarin erstellen
  • package workshopmaven;
  • import junit.framework.TestCase;
  • public class HalloWeltTest extends TestCase {
  • public void testMain() {
  • final HalloWelt testClass = null;
  • testClass.main(null);
  • }
  • }

9. Junit Abhngigkeit definieren

  • In derpom.xmlwird folgender Abschnitt nach dereingefgt
  • junit
  • junit
  • 3.8.1
  • test
  • Damit wird ausgedrckt, dass die Junit Bibliothek (jar) bentigt wird

10. Test der Anwendung

  • Der Test erfolgt bermvn clean test
  • Als Ergebnis wird eine hnliche Ausschrift gezeigt:
  • C:workshopmavenhallowelt-java>mvn clean test
  • :
  • -------------------------------------------------------
  • T E S T S
  • -------------------------------------------------------
  • Hallo Welt
  • [surefire] Running workshopmaven.HalloWeltTest
  • [surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,015 sec
  • Results :
  • [surefire] Tests run: 1, Failures: 0, Errors: 0
  • [INFO] ----------------------------------------------------------------------------
  • [INFO] BUILD SUCCESSFUL
  • [INFO] ----------------------------------------------------------------------------
  • [INFO] Total time: 6 seconds
  • [INFO] Finished at: Fri Jan 06 22:51:11 CET 2006
  • [INFO] Final Memory: 3M/8M
  • [INFO] ----------------------------------------------------------------------------

11. Projekterstellung ber Vorlagen

  • Die bisherigen Schritte knnen alle durch die Nutzung von Architekturtypen automatisiert werden, z.B. ber das Kommando:
  • mvn archetype:create-DgroupId=workshopmaven -DartifactId=hallowelt-java-DartifactVersion=1.0-SNAPSHOT
  • Die allgemeine Syntax lautet:
  • mvn archetype:create-DarchetypeGroupId=maven-archetype-group-DarchetypeArtifactId=maven-archetype-name-DarchetypeVersion=maven-archetype-version
  • -DgroupId=com.mycompany.app
  • -DartifactId=my-app
  • Je nach Architekturtyp sind verschiedene Parameter ber die Option -D festzulegen

12. Verpacken der Anwendung

  • Das Verpacken geschieht ber Eingabe von mvn package
  • Das erstellte Archiv richtet sich nach dem in derpom.xmlangegebenen Wert fr
  • Mgliche Archive sind jar, war, ear, ...?

13. Verteilen der Anwendung

  • Prinzipiell werden Anwendungen in Repositories verteilt
  • Eine Verteilung in das lokale Repository wird ber folgendes Kommando ausgelst:
  • mvn install

14. Erstellen einer HTML Site

  • Aufruf von:mvn clean site
  • Als Ergebnis wird intargetein Unterverzeichnissiteerstellt, welches eine schlichte Projekt Website enthlt

15. Lizenz hinzufgen

  • Verzeichnissrcmain esourceserstellen
  • mkdirsrcmain esources
  • Dort wird eine Datei mit dem Wortlaut der Lizenz abgelegt, z.B.
  • LGPL2.txt
  • Hier sollte der Wortlaut der LGPL stehen!
  • pom.xmlnacherweitern:
  • GNU LGPL Version 2
  • srcmain esourcesLGPL2.txt
  • manual
  • Its free to modify, redistribute and derive other programs.
  • Zum Test erneutmvn clean siteausfhren

16. Weitere Lizenz hinzufgen

  • Erstellen einer weiteren Lizenzdatei( FDL.txt ) unterresources , Inhalt:
  • Hier sollte der Wortlaut der GNU Free Documentation License stehen!
  • Den Abschnitt licenses inpom.xmlersetzen:
  • GNU LGPL Version 2
  • srcmain esourcesLGPL2.txt
  • manual
  • Its free to modify, redistribute and derive other programs.
  • GNU Free Documentation License
  • srcmain esourcesFDL.txt
  • manual
  • Its free to modify, redistribute and derive other stuff.

17. Web Anwendung

  • Erstellen des Web Projektes unter demworkshopmavenVerzeichnis
  • mvn archetype:create -DgroupId=workshopmaven -DartifactId=hallowelt-web -DarchetypeArtifactId=maven-archetype-webapp
  • Webanwendung konfektionieren
  • mvn package
  • Untertargetist das fertige War Archiv abgelegt, testbar auf einem J2EE Appserver

18. Erweiterung der Webanwendung

  • Anlegen Verzeichnisstruktur
  • mkdir srcmainjava
  • mkdir srcmainjavaworkshopmaven
  • Erstellen eines ServletsHalloWelt.java
  • package workshopmaven;
  • import java.io.IOException;
  • import javax.servlet.ServletException;
  • import javax.servlet.http.HttpServlet;
  • import javax.servlet.http.HttpServletRequest;
  • import javax.servlet.http.HttpServletResponse;
  • public class HalloWelt extends HttpServlet {
  • public void service(HttpServletRequest request,
  • HttpServletResponse response)
  • throws IOException, ServletException {
  • doGet(request, response);
  • }
  • public void doGet(HttpServletRequest request,
  • HttpServletResponse response)
  • throws IOException,ServletException {
  • request.setAttribute("text", "Hallo Welt");
  • request.getRequestDispatcher("/index.jsp").forward(request,response);
  • }
  • }

19. Anpassung der JSP Seite

  • Untersrc/main/webappwird In derindex.jspder Text zwischen denTags ersetzt durch:

20. Ergnzung der web.xml

  • Untersrc/main/webapp/WEB-INFwird in derweb.xmlderweb-appAbschnitt wie folgt ersetzt:
  • Hallo Welt Web Anwendung
  • MainServlet
  • workshopmaven.HalloWelt
  • MainServlet
  • /controller/*
  • /controller/MainServlet

21. J2EE Abhngigkeit definieren

  • In derpom.xmlwird der Abschnitterweitert
  • javax.j2ee
  • j2ee
  • 1.4
  • Damit wird ausgedrckt, dass die J2EE Bibliothek (jar) bentigt wird

22. Verteilung und Test

  • Mitmvn packagewird die Anwendung erstellt
  • ber ein manuelles Deployment auf einen J2EE Server kann die Anwendung getestet werden
  • Der Aufruffr BEA Weblogic lautet:
  • http://localhost:7001/hallowelt-web/

23. EJB Anwendung

  • Erstellen des EJB Projektes unter demworkshopmavenVerzeichnis
  • mvn archetype:create -DgroupId=workshopmaven -DartifactId=hallowelt-ejb -DarchetypeArtifactId=maven-archetype-ejb
  • EJB Anwendung konfektionieren
  • mvn package
  • Untertargetist das fertige JAR Archiv abgelegt, testbar auf einem J2EE Appserver

24. EnterpriseAnwendung (ear) 25. Zusammenfassung

  • Einfhrung in Maven
  • bersicht
  • Langfristiges Ziel
  • Jetzige Situation
  • Entwicklung bis jetzt
  • Mgliche Alternativen
  • Empfehlung

26. Quellennachweis 27. Vielen DankfrIhr Interesse