转:

详解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后再运行程序。

myeclipse和maven的clean和build的更多相关文章

  1. myeclipse使用maven教程

    本教程包括 1.使用myeclipse构建maven下载jar包 2.使用myeclipse运行maven命令 3.使用myeclipse管理maven项目 搭建maven教程以后有时间了贴进来. 1 ...

  2. 关于maven+springmvc+mybits搭建的框架clean,build后错误:org.apache.ibatis.binding.BindingException的处理

    1.错误原型截图: 2.我对错误的处理轨迹: a.首先,可能是我的mapper.xml配置错了,但是经过查看发现mybits.xml配置如下: 我项目的目录结构如下: 初次判断mybits的配置没有问 ...

  3. myEclipse下Maven配置操作

    一.Maven 安装与配置 1.点击计算机属性里的高级系统设置,点开环境变量进行配置 2.检验配置是否成功 二.手动创建一个Maven项目,并编译运行成功 1.创建一个文件夹作为项目的根目录 2. 在 ...

  4. MyEclipse创建Maven工程

    先要在MyEclipse中对Maven进行设置:

  5. 【转】Myeclipse建立Maven项目

    原文地址: http://b-l-east.iteye.com/blog/1246482 1. 使用Maven创建webapp工程----原因是使用Maven时一般需要遵循一定的目录结构,虽然也可以使 ...

  6. step2-------使用myeclipse创建maven java web项目

    1.文章内容概述: 在对项目需求进行分析之后,决定使用maven对我的java web项目进行管理,这篇文章记录了使用myeclipse创建maven java web项目的过程. 2.开发环境: j ...

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

    body { font-family: Microsoft YaHei UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-ser ...

  8. [转]Java Web笔记:搭建环境和项目配置(MyEclipse 2014 + Maven + Tomcat)

    来源:http://www.jianshu.com/p/56caa738506a 0. 绪言 Java Web开发中,除了基础知识外,开发环境搭建,也是一项基本功.开发环境包括了IDE.项目管理.项目 ...

  9. myeclipse、maven、tomcat、jdk技巧和坑【待完善】

    公司使用前后不分离或半分离的springmvc + maven ,自己不得不研究研究myeclipse.maven.tomcat等等 开发环境搭建:坑一: Unable to process Jar ...

随机推荐

  1. 20155328 《网络对抗》 实验八:Web基础

    20155328 <网络对抗> 实验八:Web基础 实验内容及过程记录 一.Web前端HTML 我们的kali是默认安装好了apache的.首先输入netstat -tupln |grep ...

  2. WPF编程 ,TextBlock 显示百分数值的一种简单方法。

    原文:WPF编程 ,TextBlock 显示百分数值的一种简单方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/ ...

  3. Linux随笔---tar命令

    一.解压 语法:tar  [主选项+辅选项]  文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项:c:create:v:verbose: ...

  4. CS50.3

    1,int()取整函数 2,RPG(role playing game )角色扮演游戏 3,代码写了,要跑,需要compiler (编译器) 4,CLI(command-line interface) ...

  5. eclipse + maven + com.sun.jersey 创建 restful api

    maven 创建 jersey 项目 如果没找到 jersey archetype, 下载 maven 的 archetype xml, 然后导入 archetypes 运行 右击 main.java ...

  6. SpringBoot日记——错误页处理的配置篇

    在我们访问页面的时候经常会遇到各种问题,比如404,400,500,502等等,可返回的错误页对用户来讲,并不太亲民,所以要定制一下自己的错误页. 我们先访问一个错误页面,看下效果:(虽然给我们提供了 ...

  7. Android与Unity相互调用

    1. 在Unity里调用Android代码: void OnGUI(){ AndroidJavaClass jc = new AndroidJavaClass("com.some.packa ...

  8. VMware10 安装centos6.7 设置NAT模式固定ip

    https://www.cnblogs.com/yychnbt/p/5173761.html

  9. 团队作业Week5

    每个团队开一个讨论会,协商讨论团队贡献分的分配方式.每个团队的团队贡献分为50分/人.每个人分数不能相同,请详细说明分数的分配规则. 可参考这个博客. 截止时间:2014-10-27

  10. 关于maven:调整你的maven的jdk版本为 xxxx

    找到你的.m2文件 在里面添加一下信息 实例  将其更改成1.7 <profiles> <profile> <id>jdk-1.7</id> <! ...