No więc zacznijmy zabawę. Co potrzebujemy do utworzenia przykładowego projektu Struts2 za pomocą Mavena? Po pierwsze oczywiście Mavena :P Znajdziemy go na http://maven.apache.org/download.html. Znajduje się tam dokładna instrukcja instalacji dla każdego systemu, wiec nie będę się tu zbędnie rozpisywał.
Sprawdzamy czy poprawnie zainstalowaliśmy Mavena
~$ mvn --version
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/lib/jvm/java-6-sun-1.6.0.03/bin/java
No i zonk, widać dzisiejsza aktualizacja Ubuntu do nowej wersji namieszała mi trochę w zmiennych. Szybka aktualizacja JAVA_HOME i wszystko jest ok
~$ mvn --version
Maven version: 2.0.9
Java version: 1.6.0_06
OS name: "linux" version: "2.6.24-16-generic" arch: "i386" Family: "unix"
Tworzymy nowy projekt za pomocą archetypu
~$mvn archetype:create -DgroupId=sampleApp
-DartifactId=sample
-DarchetypeGroupId=org.apache.struts
-DarchetypeArtifactId=struts2-archetype-blank
-DarchetypeVersion=2.0.9-SNAPSHOT
-DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository
...
[INFO] ------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Fri Apr 25 16:19:53 CEST 2008
[INFO] Final Memory: 7M/13M
[INFO] ------------------------------------------------------
Jeżeli wszystko przebiegło bezproblemowo Maven utworzył szkielet aplikacji oraz kilka przykładowych klas i stron jsp składających się na naszą aplikację. Struktura wygenerowanych plików wygląda następująco.
|-- pom.xml
`-- src
|-- main
| |-- java
| | `-- sampleApp
| | `-- example
| | |-- ExampleSupport.java
| | |-- HelloWorld.java
| | `-- Login.java
| |-- resources
| | |-- example
| | | |-- Login-validation.xml
| | | |-- package.properties
| | | `-- package_es.properties
| | |-- example.xml
| | `-- struts.xml
| `-- webapp
| |-- WEB-INF
| | `-- web.xml
| |-- example
| | |-- HelloWorld.jsp
| | |-- Login.jsp
| | |-- Menu.jsp
| | |-- Missing.jsp
| | |-- Register.jsp
| | `-- Welcome.jsp
| `-- index.html
`-- test
`-- java
`-- sampleApp
`-- example
|-- ConfigTest.java
|-- HelloWorldTest.java
`-- LoginTest.java
No i mamy gotowy nasz projekt. Jeżeli chcemy pracować nad nim za pomocą IDE, Maven jest w stanie utworzyć pliki projektu dla 3 najpopularniejszych IDE, NetBeans, IntelliJ Idea oraz Eclipse. W zależności od naszych preferencji wybieramy
~$ mvn idea:idea
~$ mvn netbeans:netbeans
~$ mvn eclipse:eclipse
W tym poście nie będę zagłębiał się we wnętrze aplikacji. Uruchamiamy serwer np Tomcata
machu@ ~$ /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun-1.6.0.06
I umieszczamy nasza aplikacje na serwerze
~$ mvn tomcat:deploy
...
Results :
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0
[INFO] [war:war]
[INFO] Packaging webapp
[INFO] Assembling webapp[sample] in [/home/machu/Project/sample/target/
sample-1.0-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in[87 msecs]
[INFO] Building war: /home/machu/Project/sample/target/
sample-1.0-SNAPSHOT.war
[INFO] [tomcat:deploy]
[INFO] Deploying war to http://localhost:8080/sample-1.0-SNAPSHOT
[INFO] OK - Deployed application at context path /sample-1.0-SNAPSHOT
[INFO] ----------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ----------------------------------------------------
[INFO] Total time: 13 seconds
[INFO] Finished at: Sat Apr 26 21:55:16 CEST 2008
[INFO] Final Memory: 8M/23M
[INFO] ----------------------------------------------------
machu@ ~/Project/sample$
Maven buduje aplikacje, dodatkowo przeprowadza testy i deployuje. Wchodząc na http://localhost:8080/sample-1.0-SNAPSHOT możemy przekonać się ze nasza aplikacja działa :)
2 komentarze:
No wałaśnie!! Wiedziałem że musi być archetype mavenowy dla pustego projektu Strutsa ale nie miałem czasu jeszcze pogooglać. Przyda się:)
Machu, skoro piszesz bloga, czyli coś co jest skierowane do innych ludzi, to opatrz swój kod komentarzami - może czasami będzie to wręcz toporne, ale za to jakie czytelne. Pozdrawiam.
Prześlij komentarz