发表时间:2009-01-12
最后修改:2009-01-12
1 安装 jdk 5+ maven 2.09 mysql 5.x
2 配置 JAVA_HOME M2_HOME
在path中添加%JAVA_HOME%\bin;%M2_HOME%\bin
3 将下载下来的appfuse-dependencies-2.0.2解压到.m2/repository 下面
4 创建自己存放项目的目录 例如 c://appfuse
5 cd c://appfuse
6 运行创建骨架的命令,不同的框架选用不同的命令,以下是Struts2 Basic的创建命令
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.2 -DgroupId=com.mycompany.app -DartifactId=myproject
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.2 -DgroupId=com.qhin.app -DartifactId=qshin
说明:DartifactId:项目名称 DgroupId:包结构
运行完以上命令,将会生成c://appfuse/qshin
7 cd c://appfuse/qshin 运行 mvn
说明:运行到[cargo:start {execution: start-container}] 会比较慢 会下载tomcat6到 C:\Documents and Settings\Johnson Lee\Local Settings\Temp\cargo\installs
发生错误
解决方法:在pom.xml文件找到Cargo settings块 手动下载tomcat压缩包 替换 C:\Documents and Settings\Johnson Lee\Local Settings\Temp\cargo\installs中的
运行通过
8 剩下的命令就是运行程序了 mvn jetty:run-war 好了 可以运行 http://localhost:8080了
熟悉清爽的界面出现在眼前
9 开始构建吧
运行 mvn war:inplace 将war中的文件放入 自己的项目的webapp目录
运行 mvn appfuse:full-source 出现错误 查找了原因 据说是ant 1.7.0的bug 1.7.1会解决 空格的问题
解决方法:配置 maven/cong/setting.xml <localRepository>C:\appfuse\repository</localRepository>
我将原来.m2/repository 下的文件拷贝到了C:\appfuse\repository 使用此处的
重新运行mvn appfuse:full-source 通过 重新看看C:\appfuse\qshin\src\main\java下面吧 将org.appfuse的源文件都copy过来了
并且让我开心的是 都改名为com.qhin.app了 dao model service util webapp 都在下面了 高兴
10 运行mvn install eclipse:eclipse 生成eclipse的项目文件 当然也可以用idea netbeans
这个过程会慢点 因为要下载一些依赖的jar
11 导入myeclipse
12 创建表
CREATE TABLE `Employee` (
`id` bigint(20) NOT NULL auto_increment,
`code` varchar(10) NOT NULL,
`dept` varchar(50) NOT NULL,
`name` varchar(20) NOT NULL,
`status` varchar(10) NOT NULL,
`telephone` varchar(20) default NULL,
`title` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
13 由表生成model 运行mvn appfuse:gen-model
会在model包中生成Employee.java
查看原代码,原来model中有两个ID的生成策略,如下:
@Id @GeneratedValue(strategy=IDENTITY) @GeneratedValue(strategy = GenerationType.AUTO)
删除@GeneratedValue(strategy=IDENTITY),只剩下一个。
14 由model 生成CRUD
mvn appfuse:gen -Dentity=Employee
会生成employeeList.jsp、employeeForm.jsp、EmployeeAction.java
但是没有自动生成dao与service 而是采用的GenericManager<Employee, Long>中的方法,解决方法见15
15 在项目下的pom.xml中查找genericCore,大概在940行 找到 将属性true 改为false
像这样<amp.genericCore>false</amp.genericCore>
16 重新运行 mvn appfuse:gen -Dentity=Employee
在myeclipse中查看代码 dao 与 service也都生成了
17 运行 mvn jetty:run
在浏览器中查看界面吧
18 但是最后还有个问题 就是appfuse页面中 显示乱码
解决方法:修改pom.xml中
255行:UTF-8
260行: *_zh*.properties
293行:<exclude>*_zh*.properties</exclude>
发现问题依然存在,然后修改display*.properties文件,把里面的文件改成中文,然后mvn jetty:run一下就可以了
大体知道了appfuse的运行顺序了吧,终于用了两个下午把这个东西调试通过,不过剩下来的时间就是如何在eclipse中使用,并且开发自己的功能了。
期待我自己的下一篇帖子。