SpringSide是基于SSH架构适用于企业级开发的启动框架。作为业务不是特别定制化的应用,它算是一个不错的起点。

版本3.3.4中,quick-start负责安装maven repository、编译三个示例项目,启动数据库,启动项目等等。而generate-project负责生成eclipse可开发的代码模板。

但如果机器上已经装有Maven版本,则quick-start的Step2编译时会报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/c
lassworlds/launcher/Launcher
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.lau
ncher.Launcher
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher

检查bat代码后发现问题出现在

						
call %MVN% %OFF_LINE% clean install -Dmaven . test.skip=true这一句话。

前面MVN设置为SpringSide自带的2.2.1版,但bin\mvn.bat中会使用系统的M2_HOME,而如果系统中安装了其他版本的MVN,则M2_HOME会被指到其他位置,从而导致编译出错。

一个解决办法是在该步之前覆盖系统中的M2_HOME,在bat中MVN的设置后面添加
set ANT_HOME=%cd%\tools\maven\apache-ant-1.8.1
set M2_HOME=%cd%\tools\maven\apache-maven-2.2.1

再次执行,成功运行。

posted on 2011-03-15 12:11 hello 阅读(922) 评论(0)  编辑  收藏 所属分类: springside