appfuse2学习(一)
一、准备工作
1、下载appfuse-dependencies-2.0.2.zip和appfuse-documentation-2.0.2.pdf
下载apache-maven-2.0.9-bin.zip
http://maven.apache.org/download.html
2、配置环境变量JAVA_HOME(JDK 5+)、MAVEN_HOME(2.0.9+),安装MySQL 5.x数据库。
二、构建官方指南
1、为了加快构建时间,可以提前下载相应的软件。除了appfuse-dependencies-2.0.2.zip外,还需要下载apache-tomcat-6.0.14.zip。
appfuse-dependencies-2.0.2.zip解压到C:\Documents and Settings\Administrator\.m2\repository
apache-tomcat-6.0.14.zip拷贝到C:\Documents and Settings\Administrator\Local Settings\Temp\cargo\installs
2、开始构建,建立目录appfuse,在命令窗口进入到目录中,执行C:\appfuse>mvnarchetype: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 运行此命令是为了构建基于struts2的appfuse项目。在appfuse目录下生成myproject目录及相关文件。
然后在确认通过用户名为root、密码为空进入mysql的情况下,执行:C:\appfuse\myproject>mvn 运行此命令会完成相关 jar 包和 Tomcat 的下载,并运行工程的集成测试。
最后可以通过执行C:\appfuse\myproject>mvnjetty:run-war ,你就可以去查看你的工程了。用这个地址:http://localhost:8080在你的浏览器中查看你的工程,管理员的默认用户名/密码为 admin/admin ,普通用户的话,可以用 user/user 登录。
3、通过执行C:\appfuse\myproject>mvn appfuse:full-source可以看到appfuse2.0的源码,通过执行C:\appfuse\myproject>mvn可以建立适合eclipse环境的工程,不过直接导入工程文件后会有很多地方报错,需要在eclipse中重新配置后才可以使用。
三、构建自己的工程
1、创建工程(基于struts2)
C:\appfuse>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
2、修改数据库相关信息(我用的是sql server),进入myproject打开pom.xml文件,在文件底部修改数据库信息。并修改genericCore属性为false(若生成dao、service等类需要修改此属性)。
3、由于有现成的数据库所以直接生成实体类,执行:mvn appfuse:gen-model命令,在myproject\src\com\mycompany\app\model下生成了相应的文件。
4、生成dao、service等类,执行:mvnappfuse:gen -Dentity=pojoName。虽然dao、service等类都生成了,但在构建时报了些信息但并没有标明是错误:
[INFO] [appfuse:gen]
Property'http://apache.org/xml/features/nonvalidating/load-external-dtd' is notrecognized.
org.xml.sax.SAXNotRecognizedException: Property'http://apache.org/xml/features/
nonvalidating/load-external-dtd' is not recognized. atcom.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.getProperty(AbstractSAXParser.java:2060)
貌似解析xml时出现了不认可的属性。根据http://www.nabble.com/errors-with-appfuse:gen-td17424029s2369.html说明,可能以后使用中会出现其他错误,建议使用appfuse2.0.1版本。