SpringSide3.3.4与本地Maven冲突的解决办法

晨曦中的伊斯坦布尔,宁静、安详,谁曾想到过他为了自由付出过的努力和抗争。

----------------------------------------------------<围观结束分割线>--------------------------------------------------------

 

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 M2_HOME=%cd%\tools\maven\apache-maven-2.2.1

再次执行,成功运行。

 

posted @ 2011-02-23 11:44  彭小bo  阅读(2518)  评论(0编辑  收藏  举报