您的位置:首页 > 编程语言 > Java开发

SVN检出Maven项目后遇到的问题记录(1)

2018-02-02 13:45 399 查看

最近要帮别的地市的同事开发软件,需要在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,项目就挂接完毕.

至此,该项目的检出成功,可以正常使用了,后续会记载一些使用中的问题

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息