使用SVN提交项目工程包后在Eclipse使用svn插件后删除原包class后重新编译生成class文件(图文)

版权声明:HadesZ@金翰海 https://blog.csdn.net/AITop_Leader/article/details/86677054

最近捣鼓class文件提交和svn的关系,总觉得Eclispe不提交class文件而工程包曾经提交过class文件,在更新项目后显示项目冲突很不顺眼,顺便就捣鼓了下,本文前提是项目本身是没问题的,适用于项目迁移和svn同步
问题说明:
本地文件夹中有一个已经正常执行过的web项目工程包,里面包括已经编译过的class文件,Project\工程名\系统应用\WEB-INF\classes,工程包全部提交到SVN;
然后在Eclipse中使用svn插件关联项目;
最后在svn中删除classes下面所有文件,本地文件夹中执行svn update操作自动删除class文件;
在使用Eclipse编译时候就无法生成class文件。
问题原因:
个人认为可能是由于svn关联性和优先性导致IDE工具Eclipse无法识别操作,在启动IDE工具Eclipse自动编译时候由于没有更新svn操作,Eclipse默认为是有class文件且不再进行编译,由于本地文件夹和svn更新同步过,class文件又被删除不存在,这样“本来是无却认为有”的矛盾冲突使Eclipse不编译生成class文件,从而也导致weblogic服务器中间件运行过程中报错提示 java.lang.ClassNotFoundException相关错误。
解决方法:
以下方式是根据实际情况操作,本人在clean后就成功自动生成class文件。
1.自动编译方式设置:在Eclipse菜单栏,选择project-——》Build Automatically,查看是否勾选上:
在这里插入图片描述
测试:重启服务器(如果不会重启IDE试试)或查看本地classes文件夹是否生成文件。

自动编译:在菜单栏【Project】中找到【Build AutoMatically】,选中该条目表示当你保存项目下的某个文件时,项目将会自动编译(只编译修改了的文件);如果没有选中,当你保存某个文件时,Eclipse将不会自动编译修改了的文件;有时候,如果电脑比较卡,可以先不勾选该条目,等调试的时候再打开,但是切记,一定别忘了,有时候你修改好了一个文件,启动Tomcat调试时,项目还是跑的老方法,这时候可能是新代码没有被编译,项目运行的还是老代码。

2.手动编译方式设置 :在Eclipse菜单栏,选择project-——》clean…,在clean弹出框中选择项目选中后点击clean。(有些版本是进入clean对话框,选择Clean projects selected below,然后选择OK )
在这里插入图片描述在这里插入图片描述
测试:重启服务器(如果不会重启IDE试试)或查看本地classes文件夹是否生成文件。

手动编译:在菜单来【Project】中找到【Clean…】,这个Clean条目就是手动编译,个人感觉这个名字起得很不好,应该起名为Clean and Build;它不光是清理,而且会重新编译;如果项目比较大,自动编译很卡,很耗时,开发的时候可以关闭自动编译,使用的时候再手动编译。

3.项目工程包操作 右键点击项目,
选择properties-——》Java Build Path-——》Source ,将Default output folder设置为xx/系统应用//WEB-INF/classes,点击OK。
或者选择properties-——》Java Build Path-——》Libraries重新添加JAR包,点击OK。
在这里插入图片描述在这里插入图片描述
测试:如果还是不能编译生成CLASS文件,就查看报错原因。或者移除remove项目重新导入import。

猜你喜欢

转载自blog.csdn.net/AITop_Leader/article/details/86677054