昨天開始將網站現有的各個模塊項目按照svn標準目錄結構進行搭建。
我原來搭建的項目也是用maven和svn進行管理的,svn代碼庫中每個項目直接check下來就可以作為eclipse工程使用。
這樣的好處是,新來的開發人員無需過多配置eclipse,只需要按照標準來創建目錄結構和用戶類庫、建好引用關系就可以使用了。
但是在管理過程中也遇到了些問題:比如研發人員可能修改了eclipse的配置或者是在修改classpath的時候eclipse自動修改了項目文件,
這樣如果研發提交了這些eclipse環境代碼,其他人員check下來后就容易出些“莫名其妙”的問題。
現在項目按模塊分為:common(公共開發包,提供各種工具方法、共用配置、各模塊的遠程調用接口、公共緩存接口等)
sso(單點登錄,提供用戶注冊、登錄、權限管理的功能)
plugins(組件項目,提供用戶評論功能組件、資源收集功能組件等)
以及其他業務相關的項目。
更改項目管理結構的實施步驟如下:
1 1、創建svn目錄結構
2 2、將原項目的src目錄下的java代碼直接export到新目錄${project}/trunk/src/main/java下
3 3、將原項目的src目錄下的resource下的配置文件直接export到新目錄${project}/trunk/src/main/resource下
4 4、將原項目的WebContent目錄下的web項目文件直接export到新目錄${project}/trunk/src/main/WebContent下
5 5、在新目錄${project}/trunk/下編寫本項目的pom.xml
6 6、命令行運行mvn package命令打包測試
7 7、測試通過,提交整個項目文件
在eclipse中使用新工程的步驟:
1 1、在eclipse中通過svn資源庫直接將指定項目的trunk目錄checkout為新的java項目或動態web項目(直接check下來是無法編譯通過的)
2 2、修改項目的classpath,將src/main/java及src/main/resource設置成souce folder
3 3、新建項目依賴的類庫,引入相關的jar包(為方便研發的jar包管理,將這些公用的jar包提交到了一個公用的svn目錄中)
4 4、設置項目依賴,所有web項目都依賴于common項目中的源代碼進行開發(使用eclipse自帶的link source功能指定依賴的源碼目錄即可)
5 5、在eclipse生成的WebContent目錄中import項目的src/main/WebContent中的文件
6 6、發布至tomcat運行測試,OK
7、第5點也可以通過修改eclipse的.setting目錄下的配置文件來達到目的{
1、修改.jsdtscope的<classpathentry kind="src" path="src/main/WebContent"/>
2、修改org.eclipse.wst.common.component的
<wb-resource deploy-path="/" source-path="/src/main/WebContent"/>
}
classpath 代碼如下:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <classpath>
3 <classpathentry kind="src" path="src/main/java"/>
4 <classpathentry kind="src" path="cdcommonresources"/>
5 <classpathentry kind="src" path="cdcommon"/>
6 <classpathentry kind="src" path="src/main/resources"/>
7 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre6">
8 <attributes>
9 <attribute name="owner.project.facets" value="java"/>
10 </attributes>
11 </classpathentry>
12 <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0">
13 <attributes>
14 <attribute name="owner.project.facets" value="jst.web"/>
15 </attributes>
16 </classpathentry>
17 <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
18 <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
19 <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/common-lib">
20 <attributes>
21 <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
22 </attributes>
23 </classpathentry>
24 <classpathentry kind="output" path="build/classes"/>
25 </classpath>
26