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
再次執行,成功運行。