appfuse3.0手记
公司开发一直用的Appfuse,之前只是大体了解,用的也是老的2.1版本,最近有时间就自己研究了研究最新的appfuse3.0。
Appfuse 是一个很有意思的项目,可以把它看成是Java企业应用开发的一个最佳实践集合。在Maven的帮助下,可以生成基于Struts,Spring MVC或者Wicket等一些框架的组合,这样就免去了最初搭建脚手架(Scaffolding)的过程。这在Play Framework和Grails出现之前应该算是比较方便的,再加上作者Matt Raible(他的博客地址 )本身在Java圈子里也有小有名气,所以这个项目还是有一定人气的。今天看了一下,最新版的Appfuse 3.0已经支持Spring 4和Java 7/Maven 3(最低要求)了,可见人家也是与时俱进的,我们就来尝试一把。
根据 快速开始文档 ,可以很快地下载项目。我选择使用Spring MVC,具体命令如下,其中的groupId和artifactId要换成自己项目的组织和名称:
$ mvn archetype:generate -B -DarchetypeGroupId=
org.appfuse.archetypes -DarchetypeArtifactId=appfuse-modular-spring-archetype -D
archetypeVersion=3.0.0 -DgroupId=com.mydemo -DartifactId=demo -DarchetypeR
epository=http://oss.sonatype.org/content/repositories/appfuse
|
执行这条命令的条件是下载了Maven 3,并配置了Maven的执行路径,可以通过如下命令检查:
$ mvn -version
|
下载完成之后,我选择先在Eclipse中编译,使用导入Maven项目的方式将源码导入,此时遇到了三个错误。
第一个错误的具体信息如下:
Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl (execution: default, phase: process-test-resources)
|
这个错误困扰了我好久,在网上找了很多文章,有给出一下地址的,由于英文太长,也就没有细细读,有说可以忽略的,虽然看着心里不舒服,但也暂时搁置了
- http://appfuse.547863.n4.nabble.com/POM-td4655717.html
- http://wiki.eclipse.org/M2E_plugin_execution_not_covered
后来无意中在搜素第三个问题时解决了该问题
http://stackoverflow.com/questions/22521568/errors-in-spring-mvc-appfuse-app-in-eclipse
第二个错误是在sample-data.xsd文件中报错:Content is not allowed in prolog
, 尝试了网上说的把文件存成ASNI格式,不成;试验了其他方法也不成,文件本身都是乱码。 因为Appfuse开放源码,所以我直接找到这个文件把内容拷贝过来就好了,从文件头定义可以看出来它是UTF-16编码,所以肯定Windows系统加了什么乱糟糟的东西,参考 这篇博客 。sample-data.xsd源码的 位置 。
第三个错误是文件default.jsp中报错:syntax error on token "ne" invalid Assignmentoperator
。这个错误把 “ne”换成"!="问题就解决了!
其他的问题等碰到时候再来记录!