昨天开始将网站现有的各个模块项目按照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