- 1. MavenEinsteiger Workshop PlatformIndependent UserGroup
Nrnberg 2006 Autor Thomas Schubert Rechtlich geschtzt durch dieGNU
Free Documentation License
2. bersicht
-
- Hallo Welt alsStandaloneJava Anwendung
-
- Hallo Welt als Web Anwendung
-
- Hallo Welt als EJB Anwendung
-
- Hallo Weltals EnterpriseAnwendung (ear)
3. Standalone Java Anwendung
- Anlegen der Verzeichnisstruktur
- Projektbeschreibung erstellen (pom.xml)
- Kompilieren 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
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">
- Standalone Java Anwendung, welche Hallo Welt ausschreibt.
6. Java Quellen erstellen
- Verzeichnis fr Package erstellen:
- mkdir srcmainjavaworkshopmaven
- DateiHalloWelt.javaim Package erstellen
- 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
- mkdir srcestjavaworkshopmaven
- KlasseHalloWeltTest.javadarin erstellen
- import junit.framework.TestCase;
- public class HalloWeltTest extends TestCase {
- final HalloWelt testClass = null;
9. Junit Abhngigkeit definieren
- In derpom.xmlwird folgender Abschnitt nach dereingefgt
- 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
- -------------------------------------------------------
- -------------------------------------------------------
- [surefire] Running workshopmaven.HalloWeltTest
- [surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed:
0,015 sec
- [surefire] Tests run: 1, Failures: 0, Errors: 0
- [INFO]
----------------------------------------------------------------------------
- [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
- 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:
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
- Dort wird eine Datei mit dem Wortlaut der Lizenz abgelegt,
z.B.
- Hier sollte der Wortlaut der LGPL stehen!
- srcmain esourcesLGPL2.txt
- 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:
- srcmain esourcesLGPL2.txt
- Its free to modify, redistribute and derive other
programs.
- GNU Free Documentation License
- 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
- Untertargetist das fertige War Archiv abgelegt, testbar auf
einem J2EE Appserver
18. Erweiterung der Webanwendung
- Anlegen Verzeichnisstruktur
- mkdir srcmainjavaworkshopmaven
- Erstellen eines ServletsHalloWelt.java
- 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:
21. J2EE Abhngigkeit definieren
- In derpom.xmlwird der Abschnitterweitert
- 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
- Untertargetist das fertige JAR Archiv abgelegt, testbar auf
einem J2EE Appserver
24. EnterpriseAnwendung (ear) 25. Zusammenfassung
26. Quellennachweis 27. Vielen DankfrIhr Interesse