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

AppFuse 2.1剛剛於2011年4月4日發佈。2.1比2.1.0.M2最大的好處是支持jetty:run快速部署,便於你在開發時進行測試(詳見下文)。另外,也修正了許多bugs.

 

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

 

我最近正在研究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範例下載下來,編譯打包運行,這期間遇到了不少問題,不過還好,基本上都被我給解決了。同時給AppFuse的作者Matt開出了兩個JIRA Issues.

 

 

 

http://issues.appfuse.org/browse/APF-1249 : i18n - displaytag_zh*.properties and errors_zh*.properties converted but input files included in WAR instead of output files

 

http://issues.appfuse.org/browse/APF-1250 : i18n - displaytag_zh*.properties and errors_zh*.properties not converted by native2ascii in pom.xml

 

 

 

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

 

1. 運行環境

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

  Java SE 1.6.0_23

  MySQL Server 5.1

  Maven 2.2.1 (有些情況下AppFuse的操作在用Maven 3.0.3時會報錯)

  Tomcat 7.0.2

  Eclipse 3.6.1 SR2

  m2eclipse

 

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 -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=http://oss.sonatype.org/content/repositories/appfuse

 

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

 

4. 獲取全部源代碼

  在有pom.xml的目錄下,運行下面的命令,獲取全部AppFuse的源代碼:

mvn appfuse:full-source

 

5. MySQL的root的password

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

 

6. 編譯運行

  在myproject目錄下,在命令行提示窗口,運行下面的命令讓AppFuse運行在Jetty服務器上。

mvn jetty:run

 

AppFuse 2.1最大的改進之一,就是使用了mvn jetty:run來快速部署測試你的應用程序。maven-jetty-plugin能根據pom.xml的描述,在不打WAR包的情況下,自動找到相關的文件來部署運行Web 應用程序進行開發測試,能爲你省去了大量打WAR包,然後再部署到Tomcat上測試的時間。另外maven-jetty-plugin也能掃描你的源代碼,一旦發現有源文件更新,它會自動重新部署Web應用。

 

等提示jetty啓動完畢後,在瀏覽器中輸入http://localhost:8080/來訪問AppFuse. Login界面的用戶名和口令都是admin,登錄進入AppFuse範例系統。

 

你也可以運行下面命令在生成WAR包,部署到Tomcat上:

mvn clean package

 

7. 開發

  AppFuse 2.1不建議使用mvn eclipse:eclipse來生成eclipse項目文件,因爲eclipse plugin的bug太多了。Matt建議直接在eclipse裏使用m2eclipse,來打開AppFuse進行開發。

 

我在Eclipse裏用m2eclipse進行Maven的操作很順利。同時發現,若在MyEclipse (我用的是MyEclipse for Spring 8.6.0),取消Maven4MyEclipse功能,直接用m2eclipse也同樣很順利。

 

接下來,你就可以用Eclipse看AppFuse的代碼,在Eclipse裏用m2eclipse發mvn jetty:run命令打包運行,再對照着讀AppFuse 的Tutorials (http://appfuse.org/display/APF/Tutorials)了。

 

 

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