AppFuse2的网站已经变成全新的www.appfuse.org。
第一个变化是它的构建工具,从ant变成maven。虽然同样是构建工具,这个变化还是蛮大的,构建方式和以前完全不一样了。
1.准备工作
机器最必要的环境当然是不可缺少的,这个包括JDK 5+、MySQL 5.x和Maven 2.0.7。前面两个的安装就不啰嗦了,提一下Maven的环境变量配置:新建变量名为“M2_HOME”,路经为Maven根目录的环境变量,然后在Path中添加“;%M2_HOME%/bin”。
2. 创建工程
接下来我们习惯性的想要去寻找AppFuse的工程源码,其实这个完全没有必要,Maven全部为我们代劳了。当然前提条件是你的机器必须能够上网。
因为我一直使用的都是struts+spring+hibernate的框架,所以接下来就是构建这个工程了。
进入命令行窗口,转到想要存放工程的路径下,输入
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.1 -DgroupId=com.mycompany.app -DartifactId=myproject
其中的-DgroupId和-DartifactId可以修改为自己想要的包名和工程名。
使用其它框架的可以到http://appfuse.org/display/APF/AppFuse+QuickStart查找相应的命令。
命令执行完,显示BUILD SUCCESSFUL后,进行下一步。
3.配置数据库
打开工程根目录下的pom.xml,找到最后一个<jdbc.username>和<jdbc.password>,即MySQL的配置项,把用户名和密码修改为自己MySQL的配置。AppFuse默认root用户的密码为空,如果你的数据库是这样设置的,当然就不用改了。
4.运行工程
在命令行进入工程根目录,运行mvn,Maven开始下载jar包、Tomcat和运行集成测试。这一工作需要的时间还是挺长的,我的机器运行了半小时以上,所以你可以先去干点别的。
接下来运行mvn jetty:run-war,Maven开始打包、发布程序,并启动Jetty,运行完成后,你就可以通过http://localhost:8080,使用admin/admin或者user/user登录,浏览这个web应用了。
从表面看,除了样式,功能没有多少变化。
5.开发工程
到现在的阶段还看不到工程源码,接下来运行mvn appfuse:full-source,如果你的操作系统是Windows,会有一个Ant1.7.0的bug而导致构建失败,解决办法要么下载Ant1.7.1(似乎目前还未发布),要么是在C:/Documents and Settings/%username%/.m2下建立一个settings.xml文件(其中username是你当前进入系统的用户名),内容是
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<localRepository>C:/Docume~1/%username%/.m2/repository</localRepository>
</settings>
重新运行mvn appfuse:full-source,工程源码就下载到工程目录下了。
运行mvn install eclipse:eclipse,生成eclipse项目文件,这一过程也需要半小时左右。然后使用Eclipse打开它,可以欣赏最新的AppFuse源码了。
接下来还有一个问题,eclipse找不到jar包,源码里全是红叉。打开Java Build Path,发现有大量引用M2_REPO,大概eclipse不知道这个文件夹在哪里。添加一个变量,名字M2_REPO,路径指到C:/Docume~1/username/.m2/repository,确定后系统提示要重新编译,之后大部分红叉都会消失了。
但是,在UserDaoHibernate中仍然会有一个红叉,这是一个spring的版本问题,编辑根目录下的.classpath文件,查找spring-core-2.0.5.jar,把“2.0.5/spring-core-2.0.5.jar”替换为“2.5/spring-core-2.5.jar”,刷新,红叉消失。