这一篇讲解一下在eclipse中使用maven,在一些高版本的eclipse中是自带maven插件的。所以这里就不在讲解怎么安装插件了。

接下来我们创建一个MavenFirst项目

一、在Eclipse中创建一个MavenFirst项目

  第一步:创建一个Maven工程

    

  第二步:选择创建java项目——>next

    

  第三步:填写GAV

    

  第四步:点击finsh,完成创建

  第五步:创建一个MavenFirst.java

package com.zyh.maven.MavenFirst;

public class MavenFirst {
public String sayHello(String name){
return "hello"+name;
}
}

MavenFirst

    位置:

      

  第六步:使用eclipse的选项执行maven命令

    

    注意:

      这里的6--9 都是快捷方式

        9 测试,相当于命令行 mvn test

        8 安装,相当于命令行 mvn install  作用:将其上传到本地仓库,具体见上面讲解

        7 关联源码,这个不需要解释吧,平常我们使用别的jar包也关联过源码

          6 清理,mvn clean

             5 maven bulid  执行maven命令,等效 mvn

        

        4 maven build  5快速的操作

          如果没有操作过,与5相同

          如果操作过一次,将直接执行上一次5的命令

          如果操作多次,将提供选择框

  第七步:当我们执行maven install时,查看文件结构

    

注意:如果我们的例子是Maven的web项目时,将maven web项目发布到tomcat上运行

  命令:tomcat:run

  

  通过网址即可访问,同时会将该项目上传到本地仓库。

二、Maven坐标

2.1、什么是坐标 

  关于坐标(Coordinate),大家最熟悉的应该就是数学中的坐标了吧,我印象不是特别深刻,说的数学专业一点叫作平面几何。在一个平面坐标系中,有x轴和y轴,x轴就是横线,y轴就是竖线,坐标(x,y)表示这个点距离x轴为y,距离y轴为x的一点,任何一个坐标都能唯一标识该平面中的一点。

  在实际的生活中,我们可以将地址看成是一种坐标。不同的省,不同的市,不同的区,不同的街道等一系列信息标识了每一个不同的地址。在深圳经常吃外卖的人应该是有体会的,送外卖的小哥都会根据你填写的地址将外卖送给你,而你填的地址就标识了唯一的一个地址。

    坐标就好比每一个Java构件的身份证一样。Maven的世界是拥有非常多的Java构件的,可能是jar、可能是war、也可能是其他的一些东西。假如Maven中没有坐标的概念,我们是无法来区分这些构件的,所以我们要唯一标识每一个构件。

  不然就和传统的手工方式一样,你需要spring就去spring下载spring的包,需要mysql又去mysql下载mysql的包,没有统一的规范又怎么能够自动化的去依赖这些构件。

    Maven便给我们制定了一套规则那就是使用坐标进行唯一标识。Maven的坐标元素包括groupId、artifactId、version、packaging、classfier。只要我们提供正确的坐标元素,Maven就能找到对应的构件,首先去你的本地仓库查找,没有的话再去远程仓库下载。

  如果没有配置远程仓库,会默认从中央仓库地址(http://repo1.maven.org/maven2)下载构件,该中央仓库包含了世界上大部分流行的开源项目构件,但不一定所有构件都有,我在以前的开发中就遇到过找不到oracle数据库jar包的问题,不知道现在是否依然如此。

  在我们自己开发项目的时候,也是要给我们的项目定义坐标的,这是强制性要求,只有这样,其他项目才能引用该项目的构件。

2.2、Maven坐标的主要组成

  groupId:组织标识(包名)
  artifactId:项目名称
  version:项目的当前版本
  packaging:项目的打包方式,最为常见的jar和war两种

  classifier: 该元素用来帮助定义构建输出的一些附属构件

  注:groupId、artifactId、version、packaging是必须定义的,classifier是不能被直接定义的,因为附属构件不是项目直接默认生成的,而是由附加的插件帮助生成的。

    

  groupId :定义当前Maven项目隶属的实际项目。首先,Maven项目和实际项目不一定是一对一的关系。比如SpringFrameWork这一实际项目,其对应的Maven项目会有很多,如spring-core,spring-context等。这是由于Maven中模块的概念,因此,一个实际项目往往会被划分成很多模块。

        其次,groupId不应该对应项目隶属的组织或公司。原因很简单,一个组织下会有很多实际项目,如果groupId只定义到组织级别,而后面我们会看到,artifactId只能定义Maven项目(模块),那么实际项目这个层次将难以定义。

        最后,groupId的表示方式与Java包名的表达方式类似,通常与域名反向一一对应。上例中,groupId为junit,是不是感觉很特殊,这样也是可以的,因为全世界就这么个junit,它也没有很多分支。

  artifactId : 该元素定义当前实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。比如上例中的junit,junit就是实际的项目名称,方便而且直观。

        在默认情况下,maven生成的构件,会以artifactId作为文件头,如junit-3.8.1.jar,使用实际项目名称作为前缀,就能方便的从本地仓库找到某个项目的构件。

  version : 该元素定义了使用构件的版本,如上例中junit的版本是3.8.1,你也可以改为4.0表示使用4.0版本的junit。

  packaging :定义Maven项目打包的方式,使用构件的什么包。首先,打包方式通常与所生成构件的文件扩展名对应,如上例中没有packaging,则默认为jar包,最终的文件名为junit-3.8.1.jar。也可以打包成war等。

  classifier: 该元素用来帮助定义构建输出的一些附件。附属构件与主构件对应,如上例中的主构件为junit-3.8.1.jar,该项目可能还会通过一些插件生成如junit-3.8.1-javadoc.jar,junit-3.8.1-sources.jar, 这样附属构件也就拥有了自己唯一的坐标。

2.3、获取maven坐标(获取maven的三个关键属性值)

  1)使用网站搜索(从中央仓库获取)

  第一步:百度搜索关键字“maven repository”

    

  第二步:输入关键字查询获得需要内容,确定需要版本

    

  第三步:获取坐标

    

  2)使用本地仓库,通过eclipse获得坐标

    第一步:添加依赖pom.xml文件中,右击

      

  第二步:输入关键字,获取坐标。

    

Maven(三)在Eclipse中使用Maven与Maven坐标的更多相关文章

  1. 解决eclipse中自带的maven搜索不到非本地第三方包问题

     解决eclipse中自带的maven搜索不到非本地第三方包问题   版权声明:本文为博主原创文章,未经博主允许不得转载. 最近使用eclipse中的maven插件时发现,在pom.xml文件中添加第 ...

  2. 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)

    http://blog.csdn.net/sunitjy/article/details/42709311 ********************************************** ...

  3. Eclipse中出现无法找到Maven包Active Maven Profiles (comma separated)

    Eclipse中出现无法找到Maven包 2014年02月25日 16:51:30 阅读数:13057     症状:出现org.maven.ide.eclipse.MAVEN2_CLASSPATH_ ...

  4. eclipse中创建多模块maven web项目

    本文讲述在eclipse中创建分模块maven web项目. 暂时将一个项目分为controller:service:dao以及父类模块四部分. 1.创建父类模块. 创建一个简单的maven proj ...

  5. Maven进价:eclipse中集成maven

    一.M2Eclipse插件 m2eclipse是一个在Eclipse中集成Maven的插件,有了该插件,用户可以方便的在Eclipse中执行Maven命令.创建Maven项目.修改POM文件等. 下载 ...

  6. eclipse中创建完整的maven项目

    使用eclipse插件创建一个web project 首先创建一个Maven的Project如下图 我们勾选上Create a simple project (不使用骨架) 这里的Packing 选择 ...

  7. 在eclipse中通过git添加Maven 多重项目时会遇到的问题

    最近,项目换到了使用git作版本控制.于是就开始了,拉代码,测试的时候了. 再过程中遇到两个问题: 1.下载下来的不是项目,只是文档,转换为Maven项目之后 pom.xml报错(org.codeha ...

  8. Maven学习总结(12)——eclipse中构建多模块maven项目

    摘要:本文要用Maven来构建一个多模块的web项目 项目结构如下: system-parent      |----pom.xml      |----system-domain          ...

  9. OSGI企业应用开发(三)Eclipse中搭建Equinox运行环境

    上篇文章介绍了如何在Eclipse中搭建Felix的运行环境,我们需要將Bundle发布到Felix框架的bundle目录下,Felix框架启动时才会自动加载这些Bundle,否则需要在Felix框架 ...

  10. eclipse导入maven空项目,eclipse导入时不识别maven项目

    经常我们在网上下载的一些开源项目中,想要导入eclipse中,却发现eclipse不识别这个项目,这时候怎么办呢? 解决办法多种多样,我这里举例出最实用的2种: 1.在项目的根目录中加入.classp ...

随机推荐

  1. Aop介绍及几种实现方式

    Aop介绍      我们先看一下wiki百科的介绍     Traditional software development focuses on decomposing systems into ...

  2. jmeter监控服务资源

    转:http://www.cnblogs.com/chengtch/p/6079262.html  1.下载需要的jmeter插件 如图上面两个是jmeter插件,可以再下面的链接中下载: https ...

  3. ArcGIS API for JavaScript 4.2学习笔记[24] 【IdentifyTask类】的使用(结合IdentifyParameters类)(第七章完结)

    好吧,我都要吐了. 接连三个例子都是类似的套路,使用某个查询参数类的实例,结合对应的Task类,对返回值进行取值.显示. 这个例子是Identify识别,使用了TileLayer这种图层,数据来自Se ...

  4. [Maximize ∑arr[i]*i of an Array]

    Given an array of N integers. Your task is to write a program to find the maximum value of ∑arr[i]*i ...

  5. php-迭代创建级联目录

    方法一代码: path = './a/b/c/d/e/f'; $path_arr = explode('/',$path);//得到数组array('.','a','b','c','d','e','f ...

  6. Java中list<Object[]>、list<Student>、list<Map<String,String>>排序

    1:list<Object[]>的排序   public static void main(String[] args) { // TODO Auto-generated method s ...

  7. 6.Nginx作为负载均衡服务器应用

    案例:Nginx作为负载均衡服务器应用 nginx的负载均衡功能是通过upstream命令实现的,因此他的负载均衡机制比较简单,是一个基于内容和应用的7层交换负载均衡的实现.Nginx负载均衡默认对后 ...

  8. 用Go校验下载文件之SHA256

    用GO校验下载文件之SHA256 原来对计算机和网络使用安全这块不够重视,用了N多年盗版的操作系统和办公软件,为了破解使用过各种激活软件,也安装使用过很多别人破解过的软件:网络下载的文件从不校验.慢慢 ...

  9. Java Web高级编程(四)

    WebSocket 一.WebSocket的产生 用户希望Web页面可以进行交互,用于解决这个问题的技术是JavaScript,现在Web上有许多的可用的JavaScript框架,在使用极少的Java ...

  10. hadoop的安装和配置(三)完全分布式模式

    博主会用三篇文章为大家详细说明hadoop的三种模式: 本地模式 伪分布模式 完全分布模式 完全分布式模式: 前面已经说了本地模式和伪分布模式,这两种在hadoop的应用中并不用于实际,因为几乎没人会 ...