最近开始学习appfuse,为了搭建调试环境,过程感觉是有些郁闷的,在这里记录下来,供人参考,少走弯路。
大致上,可以参考
http://www.appfuse.org/display/APF/AppFuse+QuickStart+-+Chinese步骤,顺便补充一下必要的调整和操作:
前提条件:
1. 下载安装jdk,推荐使用1.6,指向jdk目录而非jre目录
2. 安装mysql,我本地使用的是5.0.45,也是ok的
3. smtp 这步骤暂且可以跳过 (如果不想太偷懒的话,可以先配置连接到google的smtp)
4. 使用maven 2.2.1+ (文章中轻描淡写的说如果用maven3会如何,确实如此,所以请使用maven2.x)
由于现在appfuse在使用maven方面贯彻的比较坚决,所以最好先做一些关于maven的功课。偶刚看过《maven实战》,这本书确实帮助非常大。
先在页面上生成archetype配置,例如:
在这里我想将appfuse工程放在我的 D:\appfuse 目录,于是将页面生成的mvn命令拷贝到我的控制台上执行
如果你的本地maven仓库上没有下载相应的依赖库文件的话,这个步骤时间会比较长(如果运气再差点,半个小时是需要的)
由于这样得到的appfuse只包含了部分的源码,例如service和数据库访问模块,是以jar文件的形式下载的。所以appfuse提供了 mvn appfuse:full-source ,可以进一步获取appfuse全部源码。
但是默认情况下(在appfuse2.1.0-M2)版本下,这个命令执行之后会报错:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: N
subject alternative DNS name matching appfuse.dev.java.net found.
at org.apache.tools.ant.taskdefs.Get.execute(Get.java:139)
at org.appfuse.mojo.installer.InstallSourceMojo.addModuleDependencies(I
stallSourceMojo.java:630)
at org.appfuse.mojo.installer.InstallSourceMojo.execute(InstallSourceMo
o.java:214)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlug
nManager.java:490)
上述问题是由于appfuse默认指定的svn服务器已经不再可用了。
http://appfuse.547863.n4.nabble.com/Classpath-issue-on-importing-appfuse-project-in-eclipse-td3249138.html
解决办法就是修改顶层pom.xml文件,加入新的svn配置,如下:
完成上述步骤之后,如果你使用的maven3,配置完svn之后仍然会执行出错,此时需要使用maven2版本,重新配置完maven环境变量之后,记得重启命令控制台。
关于maven版本的问题,可参考:
http://appfuse.547863.n4.nabble.com/Classpath-issue-on-importing-appfuse-project-in-eclipse-td3249138.html
执行完 mvn appfuse:full-source 命令之后。为了能在ide中导入,使用mvn eclipse:eclipse即可,如果构建失败,提示“ Request to merge when 'filtering' is not identical.”的话,参考:
http://easwy.com/blog/archives/maven-build-eclipse-project-failed/
可改用: mvn org.apache.maven.plugins:maven-eclipse-plugin:2.6:eclipse 命令
另外官网上提到的 mvn install eclipse:eclipse 我没有试成功,总是在启动集成测试的时候挂掉, 但毕竟我的本意只是想要生成eclipse工程文件,所以这个我就暂时无视了。
另外我本地mysql的root用户,最初不是空密码,后来改成空密码,只为了偷懒一下,密码、以及数据库类型的配置,在顶层的pom文件中对应有属性配置。
希望这些文字对各位能有点帮助。为了搞定这个环境,耗费了不少时间,最后来个截图纪念与一下吧。