Your SlideShare is downloading. ×
0
Maven  Einsteiger Workshop Platform  Independent User  Group Nürnberg 2006 Autor Thomas Schubert Rechtlich geschützt   dur...
Übersicht <ul><li>Teil I  </li></ul><ul><ul><li>Hallo Welt als  Standalone  Java Anwendung </li></ul></ul><ul><li>Teil II ...
Standalone Java Anwendung <ul><li>Anlegen der Verzeichnisstruktur </li></ul><ul><li>Projektbeschreibung erstellen (pom.xml...
Anlegen der Verzeichnisstruktur <ul><li>Folgende Kommandos in einer Shell ausführen </li></ul><ul><li>mkdir workshopmaven ...
Projektbeschreibung erstellen <ul><li>Datei pom.xml im Projektverzeichnis anlegen </li></ul><ul><li><project xmlns=&quot;h...
Java Quellen erstellen <ul><li>Verzeichnis für Package erstellen: </li></ul><ul><li>mkdir srcmainjavaworkshopmaven </li></...
Kompilieren der Anwendung <ul><li>Im Projektverzeichnis  mvn clean compile  ausführen </li></ul><ul><li>Als Ergebnis entst...
Erstellen von Testfällen <ul><li>Verzeichnisse anlegen </li></ul><ul><li>mkdir src	est </li></ul><ul><li>mkdir src	estjava...
Junit Abhängigkeit definieren <ul><li>In der  pom.xml  wird folgender Abschnitt nach der  </description>  eingefügt </li><...
Test der Anwendung <ul><li>Der Test erfolgt über  mvn clean test </li></ul><ul><li>Als Ergebnis wird eine ähnliche Ausschr...
Projekterstellung über Vorlagen <ul><li>Die bisherigen Schritte können alle durch die Nutzung von Architekturtypen automat...
Verpacken der Anwendung <ul><li>Das Verpacken geschieht über Eingabe von mvn package </li></ul><ul><li>Das erstellte Archi...
Verteilen der Anwendung <ul><li>Prinzipiell werden Anwendungen in Repositories verteilt </li></ul><ul><li>Eine Verteilung ...
Erstellen einer HTML Site <ul><li>Aufruf von:  mvn clean site </li></ul><ul><li>Als Ergebnis wird in  target  ein Unterver...
Lizenz hinzufügen <ul><li>Verzeichnis  srcmain
esources  erstellen </li></ul><ul><li>mkdir  srcmain
esources </li></ul><ul...
Weitere Lizenz hinzufügen <ul><li>Erstellen einer weiteren Lizenzdatei  ( FDL.txt ) unter  resources , Inhalt: </li></ul><...
Web Anwendung <ul><li>Erstellen des Web Projektes unter dem  workshopmaven  Verzeichnis </li></ul><ul><li>mvn archetype:cr...
Erweiterung der Webanwendung <ul><li>Anlegen Verzeichnisstruktur </li></ul><ul><li>mkdir srcmainjava </li></ul><ul><li>mkd...
Anpassung der JSP Seite <ul><li>Unter  src/main/webapp  wird In der  index.jsp  der Text zwischen den  <h2>  Tags ersetzt ...
Ergänzung der web.xml  <ul><li>Unter  src/main/webapp/WEB-INF  wird in der  web.xml  der  web-app  Abschnitt wie folgt ers...
J2EE Abhängigkeit definieren <ul><li>In der  pom.xml  wird der Abschnitt  <dependencies>  erweitert </li></ul><ul><li><dep...
Verteilung und Test <ul><li>Mit  mvn package  wird die Anwendung erstellt </li></ul><ul><li>Über ein manuelles Deployment ...
EJB Anwendung <ul><li>Erstellen des EJB Projektes unter dem  workshopmaven  Verzeichnis </li></ul><ul><li>mvn archetype:cr...
Enterprise  Anwendung (ear)
Zusammenfassung <ul><li>Einführung in Maven </li></ul><ul><li>Übersicht </li></ul><ul><li>Langfristiges Ziel </li></ul><ul...
Quellennachweis
Vielen Dank  für  Ihr Interesse
Upcoming SlideShare
Loading in...5
×

Einsteiger Workshop

957

Published on

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
957
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Einsteiger Workshop"

  1. 1. Maven Einsteiger Workshop Platform Independent User Group Nürnberg 2006 Autor Thomas Schubert Rechtlich geschützt durch die GNU Free Documentation License
  2. 2. Übersicht <ul><li>Teil I </li></ul><ul><ul><li>Hallo Welt als Standalone Java Anwendung </li></ul></ul><ul><li>Teil II </li></ul><ul><ul><li>Hallo Welt als Web Anwendung </li></ul></ul><ul><li>Teil III </li></ul><ul><ul><li>Hallo Welt als EJB Anwendung </li></ul></ul><ul><li>Teil IV </li></ul><ul><ul><li>Hallo Welt als Enterprise Anwendung (ear) </li></ul></ul>
  3. 3. Standalone Java Anwendung <ul><li>Anlegen der Verzeichnisstruktur </li></ul><ul><li>Projektbeschreibung erstellen (pom.xml) </li></ul><ul><li>Erstellen der Quellen </li></ul><ul><li>Kompilieren der Anwendung </li></ul><ul><li>Erstellen von Testfällen </li></ul><ul><li>Testen der Anwendung </li></ul><ul><li>Projekterstellung über Architekturvorlagen </li></ul><ul><li>Verpacken der Anwendung als Archiv </li></ul><ul><li>Verteilung der Anwendung ins Repository </li></ul><ul><li>Erstellen einer HTML Site </li></ul>
  4. 4. Anlegen der Verzeichnisstruktur <ul><li>Folgende Kommandos in einer Shell ausführen </li></ul><ul><li>mkdir workshopmaven </li></ul><ul><li>cd workshopmaven </li></ul><ul><li>mkdir hallowelt-java </li></ul><ul><li>cd hallowelt-java </li></ul><ul><li>mkdir src </li></ul><ul><li>mkdir srcmain </li></ul><ul><li>mkdir srcmainjava </li></ul>
  5. 5. Projektbeschreibung erstellen <ul><li>Datei pom.xml im Projektverzeichnis anlegen </li></ul><ul><li><project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; </li></ul><ul><li>xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; </li></ul><ul><li>xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd&quot;> </li></ul><ul><li><modelVersion>4.0.0</modelVersion> </li></ul><ul><li><groupId>workshopmaven</groupId> </li></ul><ul><li><artifactId>hallowelt-java</artifactId> </li></ul><ul><li><!--packaging>jar</packaging--> </li></ul><ul><li><version>1.0-SNAPSHOT</version> </li></ul><ul><li><name>Hallo Welt - Java</name> </li></ul><ul><li><!--url>http://thomas_michel.info/projects/hallowelt-java</url--> </li></ul><ul><li><inceptionYear>2006</inceptionYear> </li></ul><ul><li><description> </li></ul><ul><li>Standalone Java Anwendung, welche Hallo Welt ausschreibt. </li></ul><ul><li></description> </li></ul><ul><li></project> </li></ul>
  6. 6. Java Quellen erstellen <ul><li>Verzeichnis für Package erstellen: </li></ul><ul><li>mkdir srcmainjavaworkshopmaven </li></ul><ul><li>Datei HalloWelt.java im Package erstellen </li></ul><ul><li>package workshopmaven; </li></ul><ul><li>public class HalloWelt{ </li></ul><ul><li>public static void main( final String [] args ){ </li></ul><ul><li>System.out.println(&quot;Hallo Welt&quot;); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  7. 7. Kompilieren der Anwendung <ul><li>Im Projektverzeichnis mvn clean compile ausführen </li></ul><ul><li>Als Ergebnis entsteht ein Verzeichnis target mit Unterverzeichnis classes in welchem das Package mit dem Kompilat abgelegt ist </li></ul>
  8. 8. Erstellen von Testfällen <ul><li>Verzeichnisse anlegen </li></ul><ul><li>mkdir src est </li></ul><ul><li>mkdir src estjava </li></ul><ul><li>mkdir src estjavaworkshopmaven </li></ul><ul><li>Klasse HalloWeltTest.java darin erstellen </li></ul><ul><li>package workshopmaven; </li></ul><ul><li>import junit.framework.TestCase; </li></ul><ul><li>public class HalloWeltTest extends TestCase { </li></ul><ul><li>public void testMain() { </li></ul><ul><li>final HalloWelt testClass = null; </li></ul><ul><li>testClass.main(null); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  9. 9. Junit Abhängigkeit definieren <ul><li>In der pom.xml wird folgender Abschnitt nach der </description> eingefügt </li></ul><ul><li><dependencies> </li></ul><ul><li><dependency> </li></ul><ul><li><groupId>junit</groupId> </li></ul><ul><li><artifactId>junit</artifactId> </li></ul><ul><li><version>3.8.1</version> </li></ul><ul><li><scope>test</scope> </li></ul><ul><li></dependency> </li></ul><ul><li></dependencies> </li></ul><ul><li>Damit wird ausgedrückt, dass die Junit Bibliothek (jar) benötigt wird </li></ul>
  10. 10. Test der Anwendung <ul><li>Der Test erfolgt über mvn clean test </li></ul><ul><li>Als Ergebnis wird eine ähnliche Ausschrift gezeigt: </li></ul><ul><li>C:workshopmavenhallowelt-java>mvn clean test </li></ul><ul><li>: </li></ul><ul><li>------------------------------------------------------- </li></ul><ul><li>T E S T S </li></ul><ul><li>------------------------------------------------------- </li></ul><ul><li>Hallo Welt </li></ul><ul><li>[surefire] Running workshopmaven.HalloWeltTest </li></ul><ul><li>[surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0,015 sec </li></ul><ul><li>Results : </li></ul><ul><li>[surefire] Tests run: 1, Failures: 0, Errors: 0 </li></ul><ul><li>[INFO] ---------------------------------------------------------------------------- </li></ul><ul><li>[INFO] BUILD SUCCESSFUL </li></ul><ul><li>[INFO] ---------------------------------------------------------------------------- </li></ul><ul><li>[INFO] Total time: 6 seconds </li></ul><ul><li>[INFO] Finished at: Fri Jan 06 22:51:11 CET 2006 </li></ul><ul><li>[INFO] Final Memory: 3M/8M </li></ul><ul><li>[INFO] ---------------------------------------------------------------------------- </li></ul>
  11. 11. Projekterstellung über Vorlagen <ul><li>Die bisherigen Schritte können alle durch die Nutzung von Architekturtypen automatisiert werden, z.B. über das Kommando: </li></ul><ul><li>mvn archetype:create -DgroupId=workshopmaven -DartifactId=hallowelt-java -DartifactVersion=1.0-SNAPSHOT </li></ul><ul><li>Die allgemeine Syntax lautet: </li></ul><ul><li>mvn archetype:create -DarchetypeGroupId=maven-archetype-group -DarchetypeArtifactId=maven-archetype-name -DarchetypeVersion=maven-archetype-version </li></ul><ul><li>-DgroupId=com.mycompany.app </li></ul><ul><li>-DartifactId=my-app </li></ul><ul><li>Je nach Architekturtyp sind verschiedene Parameter über die Option -D festzulegen </li></ul>
  12. 12. Verpacken der Anwendung <ul><li>Das Verpacken geschieht über Eingabe von mvn package </li></ul><ul><li>Das erstellte Archiv richtet sich nach dem in der pom.xml angegebenen Wert für <packaging> </li></ul><ul><li>Mögliche Archive sind jar, war, ear, ...? </li></ul>
  13. 13. Verteilen der Anwendung <ul><li>Prinzipiell werden Anwendungen in Repositories verteilt </li></ul><ul><li>Eine Verteilung in das lokale Repository wird über folgendes Kommando ausgelöst: </li></ul><ul><li>mvn install </li></ul>
  14. 14. Erstellen einer HTML Site <ul><li>Aufruf von: mvn clean site </li></ul><ul><li>Als Ergebnis wird in target ein Unterverzeichnis site erstellt, welches eine schlichte Projekt Website enthält </li></ul>
  15. 15. Lizenz hinzufügen <ul><li>Verzeichnis srcmain esources erstellen </li></ul><ul><li>mkdir srcmain esources </li></ul><ul><li>Dort wird eine Datei mit dem Wortlaut der Lizenz abgelegt, z.B. </li></ul><ul><li>LGPL2.txt </li></ul><ul><li>Hier sollte der Wortlaut der LGPL stehen! </li></ul><ul><li>pom.xml nach </description> erweitern: </li></ul><ul><li><licenses> </li></ul><ul><li><license> </li></ul><ul><li><name>GNU LGPL Version 2</name> </li></ul><ul><li><url>srcmain esourcesLGPL2.txt</url> </li></ul><ul><li><distribution>manual</distribution> </li></ul><ul><li><comments>Its free to modify, redistribute and derive other programs.</comments> </li></ul><ul><li></license> </li></ul><ul><li></licenses> </li></ul><ul><li>Zum Test erneut mvn clean site ausführen </li></ul>
  16. 16. Weitere Lizenz hinzufügen <ul><li>Erstellen einer weiteren Lizenzdatei ( FDL.txt ) unter resources , Inhalt: </li></ul><ul><li>Hier sollte der Wortlaut der GNU Free Documentation License stehen! </li></ul><ul><li>Den Abschnitt licenses in pom.xml ersetzen: </li></ul><ul><li><licenses> </li></ul><ul><li><license> </li></ul><ul><li><name>GNU LGPL Version 2</name> </li></ul><ul><li><url>srcmain esourcesLGPL2.txt</url> </li></ul><ul><li><distribution>manual</distribution> </li></ul><ul><li><comments>Its free to modify, redistribute and derive other programs.</comments> </li></ul><ul><li></license> </li></ul><ul><li><license> </li></ul><ul><li><name>GNU Free Documentation License</name> </li></ul><ul><li><url>srcmain esourcesFDL.txt</url> </li></ul><ul><li><distribution>manual</distribution> </li></ul><ul><li><comments>Its free to modify, redistribute and derive other stuff.</comments> </li></ul><ul><li></license> </li></ul><ul><li></licenses> </li></ul>
  17. 17. Web Anwendung <ul><li>Erstellen des Web Projektes unter dem workshopmaven Verzeichnis </li></ul><ul><li>mvn archetype:create -DgroupId=workshopmaven -DartifactId=hallowelt-web -DarchetypeArtifactId=maven-archetype-webapp </li></ul><ul><li>Webanwendung konfektionieren </li></ul><ul><li>mvn package </li></ul><ul><li>Unter target ist das fertige War Archiv abgelegt, testbar auf einem J2EE Appserver </li></ul>
  18. 18. Erweiterung der Webanwendung <ul><li>Anlegen Verzeichnisstruktur </li></ul><ul><li>mkdir srcmainjava </li></ul><ul><li>mkdir srcmainjavaworkshopmaven </li></ul><ul><li>Erstellen eines Servlets HalloWelt.java </li></ul><ul><li>package workshopmaven; </li></ul><ul><li>import java.io.IOException; </li></ul><ul><li>import javax.servlet.ServletException; </li></ul><ul><li>import javax.servlet.http.HttpServlet; </li></ul><ul><li>import javax.servlet.http.HttpServletRequest; </li></ul><ul><li>import javax.servlet.http.HttpServletResponse; </li></ul><ul><li>public class HalloWelt extends HttpServlet { </li></ul><ul><li>public void service(HttpServletRequest request, </li></ul><ul><li>HttpServletResponse response) </li></ul><ul><li>throws IOException, ServletException { </li></ul><ul><li>doGet(request, response); </li></ul><ul><li>} </li></ul><ul><li>public void doGet(HttpServletRequest request, </li></ul><ul><li> HttpServletResponse response) </li></ul><ul><li>throws IOException, ServletException { </li></ul><ul><li>request.setAttribute(&quot;text&quot;, &quot;Hallo Welt&quot;); </li></ul><ul><li>request.getRequestDispatcher(&quot;/index.jsp&quot;).forward(request,response); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  19. 19. Anpassung der JSP Seite <ul><li>Unter src/main/webapp wird In der index.jsp der Text zwischen den <h2> Tags ersetzt durch: </li></ul><ul><li><% </li></ul><ul><li>final String text = (String) request.getAttribute( &quot; text &quot; ); </li></ul><ul><li>%> </li></ul><ul><li><%= text %> </li></ul>
  20. 20. Ergänzung der web.xml <ul><li>Unter src/main/webapp/WEB-INF wird in der web.xml der web-app Abschnitt wie folgt ersetzt: </li></ul><ul><li><web-app> </li></ul><ul><li><display-name>Hallo Welt Web Anwendung</display-name> </li></ul><ul><li><servlet> </li></ul><ul><li><servlet-name>MainServlet</servlet-name> </li></ul><ul><li><servlet-class>workshopmaven.HalloWelt</servlet-class> </li></ul><ul><li></servlet> </li></ul><ul><li><servlet-mapping> </li></ul><ul><li><servlet-name>MainServlet</servlet-name> </li></ul><ul><li><url-pattern>/controller/*</url-pattern> </li></ul><ul><li></servlet-mapping> </li></ul><ul><li><welcome-file-list> </li></ul><ul><li><welcome-file>/controller/MainServlet</welcome-file> </li></ul><ul><li></welcome-file-list> </li></ul><ul><li></web-app> </li></ul>
  21. 21. J2EE Abhängigkeit definieren <ul><li>In der pom.xml wird der Abschnitt <dependencies> erweitert </li></ul><ul><li><dependency> </li></ul><ul><li><groupId>javax.j2ee</groupId> </li></ul><ul><li><artifactId>j2ee</artifactId> </li></ul><ul><li><version>1.4</version> </li></ul><ul><li></dependency> </li></ul><ul><li>Damit wird ausgedrückt, dass die J2EE Bibliothek (jar) benötigt wird </li></ul>
  22. 22. Verteilung und Test <ul><li>Mit mvn package wird die Anwendung erstellt </li></ul><ul><li>Über ein manuelles Deployment auf einen J2EE Server kann die Anwendung getestet werden </li></ul><ul><li>Der Aufruf für BEA Weblogic lautet: </li></ul><ul><li>http://localhost:7001/hallowelt-web/ </li></ul>
  23. 23. EJB Anwendung <ul><li>Erstellen des EJB Projektes unter dem workshopmaven Verzeichnis </li></ul><ul><li>mvn archetype:create -DgroupId=workshopmaven -DartifactId=hallowelt-ejb -DarchetypeArtifactId=maven-archetype-ejb </li></ul><ul><li>EJB Anwendung konfektionieren </li></ul><ul><li>mvn package </li></ul><ul><li>Unter target ist das fertige JAR Archiv abgelegt, testbar auf einem J2EE Appserver </li></ul>
  24. 24. Enterprise Anwendung (ear)
  25. 25. Zusammenfassung <ul><li>Einführung in Maven </li></ul><ul><li>Übersicht </li></ul><ul><li>Langfristiges Ziel </li></ul><ul><li>Jetzige Situation </li></ul><ul><li>Entwicklung bis jetzt </li></ul><ul><li>Mögliche Alternativen </li></ul><ul><li>Empfehlung </li></ul>
  26. 26. Quellennachweis
  27. 27. Vielen Dank für Ihr Interesse
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×