转:

详解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. 20155331 Exp3 免杀原理与实践

    20155331 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.基于特征码的检测,2.启发式恶意软件检测,3.基于行为的恶意软件检测. 免杀是做什么? 让病毒不被杀毒软件杀 ...

  2. 查询表的DDL

    例如: SQL>create table tab001(id varchar(4)); SQL>select dbms_metadata.get_ddl(‘TABLE’,’tab001’) ...

  3. 11、Dockerfile实战-Tomcat

    一.编写Dockerfile 具体步骤这里不再细说,直接看Dockerfile文件: FROM centos:7 MAINTAINER QUNXUE ENV VERSION=8.0.46 RUN yu ...

  4. 【开源.NET】 轻量级内容管理框架Grissom.CMS(第二篇前后端交互数据结构分析)

    这是 CMS 框架系列文章的第二篇,第一篇开源了该框架的代码和简要介绍了框架的目的.作用和思想,这篇主要解析如何把sql 转成标准 xml 配置文件和把前端post的增删改数据规范成方便后台解析的结构 ...

  5. Docker_容器化jenkins

    Docker部署接口自动化持续集成环境第二步,容器化一个Jenkins! 接上文:Docker_容器化gitlab 1:pull一个jenkins镜像 docker pull jenkins 2:查看 ...

  6. 服装盘点机PDA在服装行业颜色尺码仓库条码高效管理应用

    服装行业的商品管理的特点是需要管理颜色和尺码 具体逻辑就是: 什么商品,什么颜色,什么尺码,入库多少个? 什么商品,什么颜色,什么尺码,出库多少个? 什么商品,什么颜色,什么尺码,还有库存多少个? 如 ...

  7. 《Linux内核设计与实现》 第三周 读书笔记

    第一章 Linux内核简介 1. Unix的历史 Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它是现存操作系统中最强大和最优秀的系统. Unix强大的根本原因: 简洁 在Unix中所有的东西都被 ...

  8. Jquery封装ajax

    Jquery封装ajax   Load方法     <!-- 将jquery.js导入进来 -->     <script type="text/javascript&qu ...

  9. wc 统计程序

    WC项目要求 这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数.单词数和行数.给实现一个统计程序,它能正确统计程序文件的字符数.单词数.行数,以 ...

  10. 读C#程序最小公倍数答案就是:2123581660200

    阅读下面程序,请回答如下问题: 问题1:这个程序要找的是符合什么条件的数? 问题2:这样的数存在么?符合这一条件的最小的数是什么? 问题3:在电脑上运行这一程序,你估计多长时间才能输出第一个结果?时间 ...