最近要帮别的地市的同事开发软件,需要在SVN上检出他的项目,遇到了一些坑,记录下来以防后续再遇到坑
- (1)从SVN中检出项目,我用的IDE是eclipse,这个很轻松,下面提供一个链接,博主写的很完整很清晰
(https://www.cnblogs.com/sharpest/p/6231802.html) - (2)检出项目后,每个项目都是maven项目,在项目的图标上有个M图标.由于上传到SVN中的项目没有.classpath文件,所以项目目前还只是文件夹的形式,这时需要右键该项目,选择Properties配置该项目,找到Project facets选项,会提示project facets没有配置:
这时就需要点击Convert to faceted form,来配置faceted表单.根据项目的实际情况选择即可,贴一张我的配置
- (3)配置完毕后,这个项目就会变成正常的项目,但此时发现,项目没有Maven Dependencies(Maven依赖,内存jar包),这个是通过Properties=>Libraries中看到的.没有Maven Dependencies,所有的代码就没有jar包支撑.所以必须找到原因让Maven Dependencies出现.上网咨询,了解到最有可能是.classpath文件的问题,.classpath文件中缺少缺少classpathentry选项,可以检查下是否包含“org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER”或者
“org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER”,这两者的区别就是版本的不同,这是一个叫m2e的maven插件,运行在eclipse中的,前者是新版本后该插件贡献给了eclipse成为了eclipse的一部分,后者是未成为eclipse一部分时的名字.
具体是在.classpath文件中加入下面这段代码
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
- (4)保存后,项目就有Maven Dependencies了,这时有一个项目恢复正常了,另外一个项目却还是报错,里面的代码依然找不到引入的jar包.咨询同事后得知该项目是由两个Maven项目组成,其中一个common是通用的Maven项目,属于父级Maven项目,而另外一个项目icc则是我们要进行编程的项目,它依赖于common,而我并没有在配置中挂接他俩的关系,所以代码就会找不到依赖jar包.这段关系的挂接其实在.classpath文件中也有体现:
<classpathentry combineaccessrules="false" kind="src" path="/test-common"/>
这里描述的便是项目与项目之间的挂接关系,combine access rules就是结合挂接关系,而path中描述的是该项目所挂接的项目地址.
这个操作可以通过eclipse实现,右键需要挂接关系的项目,Properties=>Java build Path=>Projects,然后点击add,选择需要挂接的项目名称即可,点击OK,项目就挂接完毕.