Your SlideShare is downloading. ×
Einsteiger Workshop
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Einsteiger Workshop

931
views

Published on

Stand 2006

Stand 2006

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
931
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Maven Einsteiger Workshop Platform Independent User Group Nürnberg 2006 Autor Thomas Schubert Rechtlich geschützt durch die GNU Free Documentation License
  • 2. Übersicht
    • Teil I
      • Hallo Welt als Standalone Java Anwendung
    • Teil II
      • Hallo Welt als Web Anwendung
    • Teil III
      • Hallo Welt als EJB Anwendung
    • Teil IV
      • Hallo Welt als Enterprise Anwendung (ear)
  • 3. Standalone Java Anwendung
    • Anlegen der Verzeichnisstruktur
    • Projektbeschreibung erstellen (pom.xml)
    • Erstellen der Quellen
    • Kompilieren der Anwendung
    • Erstellen von Testfällen
    • 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 ausführen
    • 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
    • <project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot;
    • xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    • xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;>
    • <modelVersion>4.0.0</modelVersion>
    • <groupId>workshopmaven</groupId>
    • <artifactId>hallowelt-java</artifactId>
    • <!--packaging>jar</packaging-->
    • <version>1.0-SNAPSHOT</version>
    • <name>Hallo Welt - Java</name>
    • <!--url>http://thomas_michel.info/projects/hallowelt-java</url-->
    • <inceptionYear>2006</inceptionYear>
    • <description>
    • Standalone Java Anwendung, welche Hallo Welt ausschreibt.
    • </description>
    • </project>
  • 6. Java Quellen erstellen
    • Verzeichnis für Package erstellen:
    • mkdir srcmainjavaworkshopmaven
    • Datei HalloWelt.java im Package erstellen
    • package workshopmaven;
    • public class HalloWelt{
    • public static void main( final String [] args ){
    • System.out.println(&quot;Hallo Welt&quot;);
    • }
    • }
  • 7. Kompilieren der Anwendung
    • Im Projektverzeichnis mvn clean compile ausführen
    • Als Ergebnis entsteht ein Verzeichnis target mit Unterverzeichnis classes in welchem das Package mit dem Kompilat abgelegt ist
  • 8. Erstellen von Testfällen
    • Verzeichnisse anlegen
    • mkdir src est
    • mkdir src estjava
    • mkdir src estjavaworkshopmaven
    • Klasse HalloWeltTest.java darin erstellen
    • package workshopmaven;
    • import junit.framework.TestCase;
    • public class HalloWeltTest extends TestCase {
    • public void testMain() {
    • final HalloWelt testClass = null;
    • testClass.main(null);
    • }
    • }
  • 9. Junit Abhängigkeit definieren
    • In der pom.xml wird folgender Abschnitt nach der </description> eingefügt
    • <dependencies>
    • <dependency>
    • <groupId>junit</groupId>
    • <artifactId>junit</artifactId>
    • <version>3.8.1</version>
    • <scope>test</scope>
    • </dependency>
    • </dependencies>
    • Damit wird ausgedrückt, dass die Junit Bibliothek (jar) benötigt wird
  • 10. Test der Anwendung
    • Der Test erfolgt über mvn 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 können 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 der pom.xml angegebenen Wert für <packaging>
    • Mögliche 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 ausgelöst:
    • mvn install
  • 14. Erstellen einer HTML Site
    • Aufruf von: mvn clean site
    • Als Ergebnis wird in target ein Unterverzeichnis site erstellt, welches eine schlichte Projekt Website enthält
  • 15. Lizenz hinzufügen
    • Verzeichnis srcmain esources erstellen
    • mkdir srcmain esources
    • Dort wird eine Datei mit dem Wortlaut der Lizenz abgelegt, z.B.
    • LGPL2.txt
    • Hier sollte der Wortlaut der LGPL stehen!
    • pom.xml nach </description> erweitern:
    • <licenses>
    • <license>
    • <name>GNU LGPL Version 2</name>
    • <url>srcmain esourcesLGPL2.txt</url>
    • <distribution>manual</distribution>
    • <comments>Its free to modify, redistribute and derive other programs.</comments>
    • </license>
    • </licenses>
    • Zum Test erneut mvn clean site ausführen
  • 16. Weitere Lizenz hinzufügen
    • Erstellen einer weiteren Lizenzdatei ( FDL.txt ) unter resources , Inhalt:
    • Hier sollte der Wortlaut der GNU Free Documentation License stehen!
    • Den Abschnitt licenses in pom.xml ersetzen:
    • <licenses>
    • <license>
    • <name>GNU LGPL Version 2</name>
    • <url>srcmain esourcesLGPL2.txt</url>
    • <distribution>manual</distribution>
    • <comments>Its free to modify, redistribute and derive other programs.</comments>
    • </license>
    • <license>
    • <name>GNU Free Documentation License</name>
    • <url>srcmain esourcesFDL.txt</url>
    • <distribution>manual</distribution>
    • <comments>Its free to modify, redistribute and derive other stuff.</comments>
    • </license>
    • </licenses>
  • 17. Web Anwendung
    • Erstellen des Web Projektes unter dem workshopmaven Verzeichnis
    • mvn archetype:create -DgroupId=workshopmaven -DartifactId=hallowelt-web -DarchetypeArtifactId=maven-archetype-webapp
    • Webanwendung konfektionieren
    • mvn package
    • Unter target ist das fertige War Archiv abgelegt, testbar auf einem J2EE Appserver
  • 18. Erweiterung der Webanwendung
    • Anlegen Verzeichnisstruktur
    • mkdir srcmainjava
    • mkdir srcmainjavaworkshopmaven
    • Erstellen eines Servlets HalloWelt.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(&quot;text&quot;, &quot;Hallo Welt&quot;);
    • request.getRequestDispatcher(&quot;/index.jsp&quot;).forward(request,response);
    • }
    • }
  • 19. Anpassung der JSP Seite
    • Unter src/main/webapp wird In der index.jsp der Text zwischen den <h2> Tags ersetzt durch:
    • <%
    • final String text = (String) request.getAttribute( &quot; text &quot; );
    • %>
    • <%= text %>
  • 20. Ergänzung der web.xml
    • Unter src/main/webapp/WEB-INF wird in der web.xml der web-app Abschnitt wie folgt ersetzt:
    • <web-app>
    • <display-name>Hallo Welt Web Anwendung</display-name>
    • <servlet>
    • <servlet-name>MainServlet</servlet-name>
    • <servlet-class>workshopmaven.HalloWelt</servlet-class>
    • </servlet>
    • <servlet-mapping>
    • <servlet-name>MainServlet</servlet-name>
    • <url-pattern>/controller/*</url-pattern>
    • </servlet-mapping>
    • <welcome-file-list>
    • <welcome-file>/controller/MainServlet</welcome-file>
    • </welcome-file-list>
    • </web-app>
  • 21. J2EE Abhängigkeit definieren
    • In der pom.xml wird der Abschnitt <dependencies> erweitert
    • <dependency>
    • <groupId>javax.j2ee</groupId>
    • <artifactId>j2ee</artifactId>
    • <version>1.4</version>
    • </dependency>
    • Damit wird ausgedrückt, dass die J2EE Bibliothek (jar) benötigt wird
  • 22. Verteilung und Test
    • Mit mvn package wird die Anwendung erstellt
    • Über ein manuelles Deployment auf einen J2EE Server kann die Anwendung getestet werden
    • Der Aufruf für BEA Weblogic lautet:
    • http://localhost:7001/hallowelt-web/
  • 23. EJB Anwendung
    • Erstellen des EJB Projektes unter dem workshopmaven Verzeichnis
    • mvn archetype:create -DgroupId=workshopmaven -DartifactId=hallowelt-ejb -DarchetypeArtifactId=maven-archetype-ejb
    • EJB Anwendung konfektionieren
    • mvn package
    • Unter target ist das fertige JAR Archiv abgelegt, testbar auf einem J2EE Appserver
  • 24. Enterprise Anwendung (ear)
  • 25. Zusammenfassung
    • Einführung in Maven
    • Übersicht
    • Langfristiges Ziel
    • Jetzige Situation
    • Entwicklung bis jetzt
    • Mögliche Alternativen
    • Empfehlung
  • 26. Quellennachweis
  • 27. Vielen Dank für Ihr Interesse