博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
myeclipse和maven的clean和build
阅读量:5320 次
发布时间:2019-06-14

本文共 1815 字,大约阅读时间需要 6 分钟。

转:

d

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35603331/article/details/80002723

是一个被广为使用的软件,但是很多人用了很久,对它如何编译,执行一个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的提示框如下:
    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

你可能感兴趣的文章
@bzoj - 3750@ [POI2015] Pieczęć
查看>>
PHP定时任务
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
jequery动态创建form
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
第六次java作业
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>
Python中的greenlet包实现并发编程的入门教程
查看>>
tweenlite使用说明
查看>>
ContentProvider数据访问详解
查看>>
java中遍历属性字段及值(常见方法)
查看>>
在iPhone应用中使用自定义字体
查看>>
在AD的环境下,更改计算机名导致TFS,无法连接解决办法
查看>>
Jenkins执行批处理文件失败
查看>>
linux下vi命令大全
查看>>
JAVA 基础坑
查看>>
oracle 创建自定义的流水号
查看>>
深入理解jQuery框架-框架结构
查看>>