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.22. AppFuse Quickstart  打开AppFuse Quickstart页面备查:http://appfuse.org/display/APF/AppFuse+QuickStart3. 生成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 package7. 运行  把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)了。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bwwlpnn/archive/2011/04/01/6295990.aspx