关于MyEclipse对Web project进行Git版本管理遇到的问题记录

问题描述

想把本地某个Java Web 工程使用Git进行版本管理,上传到GitLab进行共享。遇到一些问题,其记录如下发现。

过程

首先我本地有一个Java Web工程,其文件目录如下,使用的IDE是MyEclipse:
在这里插入图片描述
然后使用Git对它进行版本管理,其实很简单,就是在这个文件夹下初始化一个Git仓库,然后把需要进行版本管理的文件纳入其中,不需要进行版本管理的文件在".gitignore"进行声明即可。

第一个问题就是什么文件需要进行管理,什么文件不需要进行管理

为了解决这个问题,要清楚每一个文件/文件夹的作用:
.settings:里面是包含一些设置,主要是该工程专有设置,比如该工程是什么类型(是web还是普通Java),这个最好加入管理;
src:不要多说,就是放代码的,肯定要加入管理;
target:放编译好的class文件,这个一般不加入管理;
WebRoot:放web.xml等跟web相关的配置文件,这个要加入管理;
.classpath:不清楚,大概是类加载路径之类的信息,这个最好加入管理;
.project:也不清楚,这个最好加入管理;
pom.xml:放maven依赖信息,这个必须加入管理;
我试过如果不把.settings纳入管理,则克隆下来的工程不能被MyEclipse识别为web工程,只识别为普通java项目,不能添加部署到tomcat。
因此,我采取的方法就是除了target文件夹,其它所有的东西都纳入版本管理,那么别人一克隆就能愉快地运行。
把target文件夹排除出版本管理,就要在.gitignore文件里面声明,这里顺带提一下一些相关知识:

abc          #代表把所有名叫abc的文件与文件夹都排除管理,不仅仅是当前这一级目录的,还包括子文件夹里面的都统统排除
abc/         #代表把所有名叫abc的文件夹都排除管理,包括子目录下的也统统进行排除
/abc         #代表排除当前这一级目录下的名叫abc的文件与文件夹

创建Git仓库,然后把需要的文件加入管理之后,push到GitLab,再从GItLab克隆下来import到MyEclipse进行验证,看能不能够顺利运行。

在运行的时候,出现第二个问题,clean后target/classes/下没有.class编译文件

我通过查看problems发现,提示有一个错误,说缺少src\test\resources目录。我看了提示之后,来到克隆下来的工程目录,果然没有这么一个文件夹。这是怎么回事呢,明明我把src文件夹已经纳入管理并push上去了,为什么克隆下来的时候没有这个src\test\resources目录呢?
这时候,就要提一下Git的一个隐秘规则,这就是:
Git不会把空文件夹纳入管理!!!
没错,我是把src文件夹纳入管理了,没想到其下有test文件夹,test是用来存放测试资源和代码的,资源存到src\test\resources,测试代码存到src\test\java,因为项目没有进行过测试,所以test下除了空文件夹什么都没有。也就是说src包含了一个test空文件夹,即使test里面也有文件夹,但是无奈也是空的,因此Git并没有把test及其子文件夹纳入管理,因此克隆下来的时候并没有src\test这个文件夹。
那么解决办法就是,在所有想要纳入管理的空文件夹里面随便创建个文件,然后commit即可。按照惯例,创建名为.gitkeep文件。
在win7下创建这种命名方式的文件需要用命令行,在想要创建文件的目录里按shift+鼠标右键,选择打开命令行,然后输入如下命令即可:

type NUL > .gitkeep

好了,把更改提交,并push到GitLab后,在从GitLab重新克隆下来,import进MyEclipse运行,终于有了编译好的.class文件了,部署到tomcat,一切正常。
至此,把Java Web项目纳入版本管理,并克隆下来编译运行成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值