关闭

Maven那点事儿(Eclipse版)

148人阅读 评论(0) 收藏 举报
分类:

前言:

  由于最近工作学习,总是能碰到Maven的源码。虽然平时工作并不使用Maven,但是为了学习一些源码,还是必须要了解下。这篇文章不是一个全面的Maven解析,而是一个简单的介绍,包括Eclipse中如何使用Maven,如何利用Maven工程学习。

  循序渐进,你将会学到下面的知识:

  maven的相关书籍!

  什么是maven?

  如何在eclipse中使用maven?

  maven的工程是什么样子?

  Eclipse中maven的常用命令!

  相关书籍

  首先推荐两本书,都是网上找的pdf。由于我自己没有工作需求,因此也只是简单的了解一下而已,并没有深入的研究。有兴趣的朋友,可以多看看这两本书。

Maven权威指南

Maven实战

  什么是maven?

  Maven是一个用于项目构建的工具,通过它便捷的管理项目的生命周期。即项目的jar包依赖,开发,测试,发布打包

  下面我自己总结一下它的几个特点,看了这些特点,也许对maven有更多的了解。

  1 jar包依赖

  这个也许会maven最突出的特点了使用maven不需要上网单独下载jar包,只需要在配置文件pom.xml中配置jar包的依赖关系,就可以自动的下载jar包到我们的项目中。这样,别人开发或者使用这个工程时,不需要来回的拷贝jar包,只需要复制这个pom.xml就可以自动的下载这些jar包。

  而且,我们自己下载jar包,还有可能造成版本的不一致,这样在协同开发的过程中就有可能造成代码运行的不一致。通过使用maven精确的匹配jar包,就不会出现这种问题了。

  2 项目坐标

  Maven通过特定的标识来定义项目名称,这样既可以唯一的匹配其他的jar包,也可以通过发布,使别人能使用自己的发布产品。这个标识就被叫做坐标,长的其实很普通,就是简单的xml而已:

复制代码
1   <groupId>com.test</groupId>
2   <artifactId>maventest</artifactId>
3   <version>0.0.1-SNAPSHOT</version>
4   <packaging>jar</packaging>
5 
6   <name>maventest</name>
7   <url>http://maven.apache.org</url>
复制代码

  groupId:所述的项目名称,由于有的项目并不是一个jar包构成的,而是由很多的jar包组成的。因此这个groupId就是整个项目的名称。

  artifactId:包的名称。

  version:版本号。

  packaging:包的类型,一般都是jar,也可以是war之类的。如果不填,默认就是jar。

  nameurl,一个是名称,一个是maven的地址。主要就是上面的几个参数。

  当想要依赖什么jar的时候就可以通过下面的方式依赖:

复制代码
1 <dependencies>
2     <dependency>
3       <groupId>junit</groupId>
4       <artifactId>junit</artifactId>
5       <version>3.8.1</version>
6       <scope>test</scope>
7     </dependency>
8   </dependencies>
复制代码

  各个属性的内容基本上都是一样的。

  这里要注意的是jar包的命名规则:

  artifactId-version[-classifier].packaging

  比如上面的pom.xml生成的jar包名字就是:maventest-0.0.1-SNAPSHOT.jar

  这里的classifier是可选的,但是有的项目可能还需要导出附属的一些文件,如javadoc,source等等,那么这个地方就需要配置一个字符串。一般都是JDKXXX之类的。

  3 测试驱动

  Maven是测试驱动的开发思路,因此工程创建初期,就包含两个文件夹,main和test。一个用于放置开发的java文件,一个用于写test单元测试。这样每次开发的时候,提前设计单元测试,就能帮助减少BUG。

  如何在eclipse中使用maven

  我使用的eclipse有自带的maven插件,因此直接创建就可以了。这里就不介绍如何安装maven了。下面介绍一下maven工程的创建:

  1 如何创建maven工程:

  直接点击新建,在里面可以找到Maven选项卡,点击Maven Project创建Maven工程

  2 选择默认的工程位置

  3 创建工程,红色是创建普通的maven工程的。粉色是创建web工程的。

  6 填写相关的groupId artifactId version等信息

  点击完成就创建好了一个简单的maven工程。

  maven工程是什么样子的?

  maven的工程一般都是如下的结构:

复制代码
first_maven  
|-- pom.xml  
`-- src  
    |-- main  
    |   |-- java  
    |   |   `-- com  
    |   |       `-- test  
    |   |           `-- App.java  
    |   `-- resources  
    |       `-- META-INF  
    |           `-- application.properties  
    `-- test  
        `-- java  
            `-- com  
                `-- test  
                    `-- AppTest.java  
复制代码

  pom.xml:用于定义或者添加jar包的依赖

  src-main:用于存放java源文件

  src-test:用于存放测试用例。

  也许工程下还会出现target文件夹,这个是用来生成对应的class文件或发布的jar包

  Eclipse中maven常用的命令

  点击Run As就可以发现几个Maven的命令:

  Maven Build:

  这个命令用于编译Maven工程,执行命令后会在target文件夹中的classes中生成对应的class文件。

  Maven Clean:

  删除target文件夹,即删除生成的package包以及class等文件。

  Maven Test:

  先自动进行编译,在运行所有的测试用例。

  Maven install:

  发布生成对应的package包。

 

  注意:

  留意上面的命令的作用,build和test都会生成相应的class文件。也就是说,当你新建一个maven工程,或者clean一个maven工程后,如果没有使用这两个命令,直接针对类进行测试,会跑出java.class.notfound的错误。因为此时还没有编译生成class文件,如果有朋友发现这个问题注意一下就好了。(该部分只针对旧版本,新版本如maven3.3是可以自动编译的)

  只有使用了上面的两个命令后,才能针对某个类进行单元测试。

博客原地址:http://www.cnblogs.com/xing901022/p/4170248.html

0
0
查看评论

maven 那点事儿

1、maven的默认中央仓库在%M2_HOME%/lib/maven-model-builder-3.3.9.jar/中的\org\apache\maven\model 的pom文件配置 如下- - central Central Repository https://repo....
  • sonycong
  • sonycong
  • 2016-02-08 10:16
  • 307

《小老爷们那点事儿》终极整理贴 (已完结)

《小老爷们那点事儿》终极整理贴  (已完结) 以下是分帖链接地址 小老爷们那点事儿整理帖之一 http://www.tulaoya.cn/bbs/read.php?tid=4 小老爷们那点事儿整理帖之二    避孕套的故事 http://www.tulaoya...
  • metababy
  • metababy
  • 2007-08-24 13:32
  • 18461

Maven那点事儿(Eclipse版)

前言:   由于最近工作学习,总是能碰到Maven的源码。虽然平时工作并不使用Maven,但是为了学习一些源码,还是必须要了解下。这篇文章不是一个全面的Maven解析,而是一个简单的介绍,包括Eclipse中如何使用Maven,如何利用Maven工程学习。   循序渐进,你将会学到下面的知识: ...
  • lcczzu
  • lcczzu
  • 2015-07-14 16:12
  • 326

ThreadLocal 那点事儿(续集)

ThreadLocal 那点事儿(续集)
  • zhangming1013
  • zhangming1013
  • 2015-03-02 15:06
  • 666

产品经理必懂的技术那点事儿(上)

一:产品思维与技术思维:   1:工程师是路径推理的技术思维,产品经理是用户场景的产品思维,技术思维表现为——实现方式、技术架构、技术价值、开发成本;而产品思维表现在——用户价值、使用场景、商业价值、业务闭环。   2:产品职能:属于信息上游负责发现并定义需求,将用户需求...
  • Q___Narcissus
  • Q___Narcissus
  • 2018-01-30 11:41
  • 125

maven 那点事儿(eclipse)

maven 那点事儿
  • xuanfeng407
  • xuanfeng407
  • 2016-07-04 00:30
  • 83

【Java开发】Maven那点事儿(Eclipse版)

Maven那点事儿(Eclipse版) 前言:   由于最近工作学习,总是能碰到Maven的源码。虽然平时工作并不使用Maven,但是为了学习一些源码,还是必须要了解下。这篇文章不是一个全面的Maven解析,而是一个简单的介绍,包括Eclipse中如何使用Maven,...
  • LG1259156776
  • LG1259156776
  • 2016-10-21 16:23
  • 329

读《java程序员,上班那点事儿》有感

最近在学校图书馆闲逛,找到了一本叫《java程序员,上班那点事》的书,想着以后进入一号店工作多半是用java进行开发,所以就借来看看,心想:难道java程序员和别的程序员不一样吗?哪知道,这书一看上瘾了,内容通俗易懂,语言幽默诙谐,我以一种遏制不住的冲动花了三天读完这本书,准确的说是翻完了,有些我认...
  • zh19890828
  • zh19890828
  • 2011-11-08 23:42
  • 602

产品经理必懂的技术那点事儿(中)

四:数据库知识: 1:数据库类似于一个进行数据存储的仓库,运行在服务器中,数据按照一定的规则存储,可以对数据库中的数据进行增删改查的操作。主要分为关系型数据库和非关系型数据库。   2:关系型数据库:指一种基于关系模型的数据库,关系模型折射出现实世界中的实体关系,将现实世界中各种实体...
  • Q___Narcissus
  • Q___Narcissus
  • 2018-01-30 16:07
  • 99

AOP那点事儿:面向切面编程(2)

本文是《AOP 那点事儿》的续集。在上篇中,我们从写死代码,到使用代理;从编程式 Spring AOP 到声明式 Spring AOP。一切都朝着简单实用主义的方向在发展。沿着 Spring AOP 的方向,Rod Johnson(老罗)花了不少心思,都是为了让我们使用 Spring 框架时不会感受...
  • x137671
  • x137671
  • 2015-12-04 16:50
  • 222
    个人资料
    • 访问:36871次
    • 积分:714
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:15篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论