SpringSide是基于SSH架構(gòu)適用于企業(yè)級開發(fā)的啟動框架。作為業(yè)務(wù)不是特別定制化的應(yīng)用,它算是一個不錯的起點。
版本3.3.4中,quick-start負責安裝maven repository、編譯三個示例項目,啟動數(shù)據(jù)庫,啟動項目等等。而generate-project負責生成eclipse可開發(fā)的代碼模板。
但如果機器上已經(jīng)裝有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代碼后發(fā)現(xiàn)問題出現(xiàn)在
call %MVN% %OFF_LINE% clean install -Dmaven . test.skip=true這一句話。
前面MVN設(shè)置為SpringSide自帶的2.2.1版,但bin\mvn.bat中會使用系統(tǒng)的M2_HOME,而如果系統(tǒng)中安裝了其他版本的MVN,則M2_HOME會被指到其他位置,從而導致編譯出錯。
一個解決辦法是在該步之前覆蓋系統(tǒng)中的M2_HOME,在bat中MVN的設(shè)置后面添加
set ANT_HOME=%cd%\tools\maven\apache-ant-1.8.1
set M2_HOME=%cd%\tools\maven\apache-maven-2.2.1
再次執(zhí)行,成功運行。