1. Core
? ?? Core Modules是最常用的封裝。包括:
- ORM:Dao泛型基類。
- 測試:包括Spring集成測試類的擴展,分組測試的支持,Selenium的支持。
- 日志:包括 MockLog4jAppender, Log4jMBean
- 工具類:包括 SpringContextHolder與SpringSecurity, Servlet與Struts2,? 反射,xml/json/base64/hex編碼的工具類。
2.Extension
? ?? Extension Module 是mini-xxx示例中使用不上的封裝。
- Memcached/TokyoTyrant : 客戶端與本地開發的服務模擬器。
- Security: JCaptcha驗證碼集成;SpringSecurity與CXF集成; 加解密, 散列生成Utils.
- 工具類:JmxClientTemplate。
3.Parent
? ?? 可重用的pom.xml主文件,可簡化各子項目中pom.xml文件的定義。
3.1 基本定義
- <properties> 屬性定義,包括依賴庫的版本號與plugin屬性的定義。
- <repositories> 和<pluginRepositories> 設定除中央倉庫(repo1.maven.org/maven2/)外的其他Jar倉庫。設定先找團隊本地Nexus私服,再找中央倉庫,最后找 JBoss, Sun等其他倉庫。
3.2 依賴項版本預定義
- <dependencyManagement>定義全部依賴項的默認version,scope 和exclusion,則子POM 只需定義groupId 和 artifactId 即可. (type不為jar時需重新定義type)。
- <dependencyManagement>不會產生實際的依賴,僅當子類定義depency時才生效.
3.3 Build/Plugins 定義
? ? ?? 定義了一些plugin的最新版本,并作了以下設置
- 指定 maven-compiler-plugin,按JDK6.0語法編譯。
- 指定 maven-resource-plugin, 復制resource文件時編碼根據公共屬性${project.build.sourceEncoding}定義。
- 指定 maven-war-plugin,生成的war文件名為artifactId.war,不帶version信息.
- 指定 maven-jar-plugin, 定義META-INF的內容.
- 指定 maven-eclipse-plugin, 定義exclude .svn文件,生成項目時下載source code。
- 指定 maven-jetty-plugin, 定義在屏幕中按回車重載應用。
4. SpringSide Modules的使用
? 在springside-core與springside-extension中點擊install.bat安裝到本地倉庫,然后在項目的pom.xml中依賴它們。
? 但其實所有的基類都可以拆開來,隨便修改成用戶自己喜歡的樣子,然后重命名為自己項目的基類,而不必完整的依賴springside-core,大家的修改不存在任何的版權問題:)