用好SSH (Struts2+Spring+Hibernate) - AppFuse 2.1.0.M2 的安裝運行步驟

AppFuse對於想要用好SSH (Struts2, Spring, Hibernate)的朋友來說,是不可多得的寶貴範例。

 

我最近正在研究SSH,並且想用學到的SSH技術,開發一個論壇項目。

 

我發現,學好SSH和用好SSH真是兩件完全不同的事情。“學好”是針對基本概念,而“用好”是針對最佳實踐。

 

我在SSH的基本概念學了一陣後,到要動手寫代碼了,卻發現無從下手。因爲SSH是3個既相對獨立,又相互關聯的框架。要想把SSH這3個框架整合到1個項目中,並且要用一些最佳實踐整合好,並不是一件容易的事情。

 

AppFuse正好做了整合SSH的事情,從2007年7月11日推出AppFuse 2.0 RC1,到現在的2.1.0.M2,不僅整合好了SSH,還整合了Maven, Spring Annotations, JSF, Spring MVC, Stripe, Tapestry 5, Wicket, JDK5, Annotations, JSP 2.0, Servlet 2.4, JPA.

 

把最新版的AppFuse 2.1.0.M2範例下載下來,編譯打包運行,這期間遇到了不少問題,不過還好,基本上都被我給解決了。現在快要把AppFuse的Tutorial閱讀並且運行完了。

 

這篇博文主要是把AppFuse 2.1.0.M2的安裝運行步驟總結一下,以後會繼續把AppFuse的使用經驗和大家分享。

 

1. 運行環境

  安裝好以下環境(我用的是Windows 7 Home):

  Java SE 1.6.0_23

  MySQL Server 5.1

  Maven 3.0.3 和 2.2.1 (一般情況下用Maven 3.0.3, 有些情況下AppFuse的操作Maven 3.0.3會報錯,那時就用2.2.1)

  Tomcat 7.0.2

 

2. AppFuse Quickstart

  打開AppFuse Quickstart頁面備查:http://appfuse.org/display/APF/AppFuse+QuickStart

 

3. 生成basic範例

  在一個空文件夾下,從命令行提示窗口,運行Quickstart中下面的範例生成命令

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0-M2 -DgroupId=com.mycompany -DartifactId=myproject

 

上述命令在Maven 3.0.3下運行成功後,會在當前文件夾下,生成一個myproject目錄。進入目錄,會看到範例源代碼。

 

4. 修改double webapp folders問題

  AppFuse有一個bug,就是在上述範例源代碼的src/main/java和src/test/java目錄下,會有兩個連續的webapp文件夾。自己手工把model和最後一個webapp文件夾都上移一個文件夾的位置,並且刪除多餘的webapp就好了。

 

5. MySQL的root的password

  在pom.xml文件結尾處,找到MySQL的root的password的元素,寫上你的root的口令。pom.xml默認root的口令是空。

 

6. 編譯打包

  在myproject目錄下,在命令行提示窗口,運行下面的命令打WAR包:

mvn package

 

7. 運行

  把myproject/target目錄下的WAR包,部署到你的Tomcat服務器上,並且讓MySQL處於運行狀態,啓動Tomcat,在瀏覽器中輸入http://localhost:8080/<WAR 包文件名>,就能看到login界面,用戶名和口令都是admin,登錄進入AppFuse範例系統。

 

8. 生成Eclipse項目文件

  運行下面的命令,生成Eclipse項目文件,便於import到你的Eclipse中讀代碼。

mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse -DdownloadSources=true -DdownloadJavadocs=true

 

如果你用MyEclipse, 可以把上述命令中的eclipse換成myeclipse。

 

這樣就把AppFuse的basic範例安裝配置運行起來了,不過目前你下載的是embedded模式的AppFuse,即僅有AppFuse的用戶端源代碼,還沒有AppFuse的核心模塊源碼。

 

如果你想看AppFuse的包括用戶端和核心模塊的所有代碼,可以在另一個空的文件夾中,執行上述第3到7步,然後再執行下面的操作就可以了:

 

9. 修改pom.xml

打開pom.xml, 在appfuse-maven-plugin元素的configuration子元素中,插入下面一行,否則你會看到“svn: PROPFIND request failed”之類的錯誤。

<trunk>https://svn.java.net/svn/appfuse~svn/</trunk>

 

10. 切換Maven到2.2.1

通過環境變量設置,把M2_HOME改爲Maven 2.2.1的目錄,這樣就把Maven從3.0.3換成了2.2.1。然後重新打開一個命令提示窗口,在有pom.xml的目錄下,執行下面的命令。若你還用Maven3.0.3,你會看到“Embedder”相關的錯誤提示。

mvn appfuse:full-source

 

 

接下來,你就可以用Eclipse看AppFuse的代碼,用Maven打包運行,再對照着讀AppFuse 的Tutorials (http://appfuse.org/display/APF/Tutorials )了。

 

 

發佈了24 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章