转:

详解myeclipse和maven的clean和build

2018年04月20日 11:33:34 群星坠 阅读数:3529
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35603331/article/details/80002723

MyEclipse是一个被广为使用的软件,但是很多人用了很久,对它如何编译,执行一个java工程却没有一个清楚的认识。比如,

  1. clean和build到底有什么区别?
  2. 直接run主类之前用不用clean一下?
  3. 直接clean和maven clean是不是一样的?
  4. 直接build和maven build,结果相同吗?

另外,在遇到最棘手的问题:

错误: 找不到或无法加载主类

的时候,很容易陷入懵逼状态。下面我结合我的一些实验,简单介绍下myeclipse的,clean,build,run,以及他们和maven clean,maven build的区别。

一.myeclipse的clean,build和run


首先,我们使用一个普通的maven工程作为例子。

  1. clean。作用很简单,清空输出目录下的所有文件,每一个source folder都有一个自己的输出目录,也就是output
    folder。这个目录可以在build path里进行设置,一个标准maven工程中,src/main/java通常的输出目录是
    工程名/target/classes
  2. build。build的作用则是编译,实际上就是把source fold下的所有文件转移到相应的output folder, .java文件先编译再转移,其他文件直接转移。在maven工程中,这个build其实相当于一次myeclipse自身的编译,最后再利用maven提取一下资源文件。
  3. 其实两者区别很明显了,很多时候我们分不清他和clean的区别,是因为myeclipse提供了很多便利的机制。clean的提示框如下:

    看到红框了吗,如果打勾,表示clean完毕之后立刻进行一次build,那看起来就和build没什么区别了。如果你把勾去掉,clean后去查看输出目录,就会发现输出目录被清空了。这里就不进行截图了。
    4.run。简单来说就是找一个main方法,直接右键,run java application,相信大家都用过。这个run,实际上就是去
    工程名/target/classes
    这个目录下去找class文件执行而已(如果不是maven工程,可能去工程名/classes下找),那么没有文件怎么办呢?如果你刚刚完成了clean,但是没有build,那么它会自动build一次。此外都会直接去找文件执行,如果找不到咋办?

错误: 找不到或无法加载主类

二.maven的clean和build

  1. maven clean
    默认情况下直接删除target文件夹。简单直接。
  2. maven build
    按照maven规则进行编译,和myeclipse无关,也就是说,不管你是不是设置了source folder,maven都按照他那一套进行编译,具体规则大家可以找maven文章深入学习。
  3. maven的一些规则。maven的默认输出文件夹也是
    工程名/target/classes,无论源代码还是资源文件,根目录都是这个文件夹,打包其实就相当于把这个文件夹打包而已。

三.总结


无论如何,build之前都应该clean,因为如果直接build,同名文件直接覆盖,非同名文件会保留,这有可能给程序带来未知的问题。如果myeclipse的输出文件夹设置合理,那么和maven build可能也不会出现什么不同。但是,在使用maven的情况下,直接使用myeclipse内置的build功能仍然可能会和maven build产生不完全一致的效果,比如maven可能会忽视src/main/java文件夹内的资源文件,而myeclipse会保留。
严格来说,myeclipse内置的编译功能,更多的是提供代码提示和检查功能,即使你完全不使用它,maven也可以正确编译。(当然这样你就享受不到代码提示之类的的了)。
但可以确定的是,使用maven clean build总是可以生成最精确的结果,所以推荐先maven clean build后再运行程序。

转载于:https://www.cnblogs.com/libin6505/p/10395333.html

myeclipse和maven的clean和build相关推荐

  1. 详解myeclipse和maven的clean和build

    MyEclipse是一个被广为使用的软件,但是很多人用了很久,对它如何编译,执行一个java工程却没有一个清楚的认识.比如, clean和build到底有什么区别? 直接run主类之前用不用clean ...

  2. 使用Myeclipse搭建Maven项目

    使用Myeclipse搭建Maven项目 OS:Windows 7 Maven版本:3.5.2 Java版本:1.8.0_152 IDE:Myeclipse 2017 CI3 1 Maven简介 Ma ...

  3. Maven -- 使用Myeclipse创建Maven项目

    使用Myeclipse创建Maven项目有如下几种方式: 1.创建Maven Java项目 1.1 选择新建Maven项目 1.2.选择创建简单项目 1.3.填写项目信息 1.4.创建成功后项目目录结 ...

  4. myeclipse java maven web 项目结构,Myeclipse 10 Maven 构建 Java Web 项目

    下载 Maven http://maven.apache.org/download.cgi,解压到任意非C盘位置,比如:D:\Java\apache-maven-3.1.0 打开 Myeclipse ...

  5. MyEclipse中用Maven创建Web项目

    MyEclipse中用Maven创建Web项目 工具/原料 MyEclipse2014 Maven-3.3.3 方法/步骤 1 new --> other 2 1.Wizards: mvaen ...

  6. 使用MyEclipse构建MAVEN项目 - 我的漫漫程序之旅 - BlogJava

    使用MyEclipse构建MAVEN项目 - 我的漫漫程序之旅 - BlogJava这里用的是MyEclpise的自带的MAVEN插件. Maven最好配置成你自己安装的那个,MyEclipse自带会 ...

  7. Myeclipse学习总结(15)——Eclipse/MyEclipse中Maven项目常见问题解决汇总

    Eclipse/MyEclipse中Maven项目一般会遇到如下问题: 一. The superclass "javax.servlet.http.HttpServlet" was ...

  8. MyEclipse使用Maven创建web项目+搭建SSM框架教程

    MyEclipse使用Maven创建web项目+搭建SSM框架教程 博文中的代码:链接:http://pan.baidu.com/s/1o8tqIMI 密码:m3si 安装maven和配置 1.下载m ...

  9. MyEclipse使用Maven创建web项目+搭建SSM框架教

     使用maven已经有一段时间了,但项目是别人搭建好的,因此一直想着自己要学习搭建一下.网上找了些资料后,结合自己实验,花了点时间就搞好,老样子,写在博客上,免得日后忘记. 博文中的代码:链接:h ...

最新文章

  1. 【iOS UIKit】UITableView属性及方法大全
  2. MIT_18.03_微分方程_Laplace_Transform_拉普拉斯变换_Notes
  3. Regex 正则零宽断言
  4. .NET Nancy 详解(三) Respone 和 ViewEngine
  5. 黑苹果sd卡认不出来_天生一对:新入苹果M1笔记本,DOCKCASE拓展坞弥补缺憾
  6. centos 生产 ssh-key
  7. Android应用开发——文件目录
  8. 封装一个邮件发送工具类,一个字,巴适
  9. Java程序Date类型比较
  10. 检测浏览器是否支持ajax ===小代码
  11. svn管理ad元件库_AD元器件库服务器管理指南
  12. Windows 手动与脚本自动重启Print Spooler打印服务
  13. 远程操作工具 Teamviewer
  14. 富士施乐m115b怎么连接电脑_富士施乐m115b驱动|富士施乐DocuPrint M115b一体机驱动下载 V1.01.00 官方版 - 比克尔下载...
  15. 单片机A/D采样的原理
  16. 详解Unity中的粒子系统Particle System (七)
  17. 电脑wifi通过中继器上网频繁掉线问题分析及问题解决方案(DHCP NAK)
  18. 【Electron】Electron开发入门(五):项目打包
  19. 24小时稳定性爆肝测试!国内外5款远程控制软件大盘点
  20. 计算机记账软件毕设论文,基于ios移动平台的家庭理财记账app___设计与实现_大学毕设论文.doc...

热门文章

  1. java redirect 跨域_如何解决跨域重定向携带参数的问题?不使用将参数拼接在重定向url末尾的方式...
  2. uni中动态加载class_Java基础·类加载、反射
  3. 电脑技巧:微软电脑管家测试版发布,赶快来体验一下吧!
  4. 如何把VS Code打造成Java开发IDE?
  5. jvm 崩溃日志设置_JVM致命错误日志(hs_err_pid.log)分析(转载)
  6. configuration 命名空间_kubernetes30:monitoring命名空间处于Terminating状态的处理方法...
  7. 微博php sdk,手机第三方新浪微博登录php api实现分析
  8. 极端原理_为极端而设计
  9. 祖父元素_帮助祖父母建立Skype帐户的UX经验教训
  10. hp-ux 单用户 启动_UX备忘单:搜索与浏览