AppFuse 2.0初体验

转载自:http://blog.csdn.net/clearwater21cn/archive/2008/03/06/2154736.aspx

第一个变化是它的构建工具,从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”,刷新,红叉消失。

你可能感兴趣的:(eclipse,spring,maven,mysql,Appfuse)