maven坐标

简介:
基本概念 
    Maven坐标为各种构件引入了秩序,任务一个构件都必须明确定义自己的坐标,而一组Maven坐标是通过一些元素 
    定义的,他们是groupId,artifactId,version,packaging,classifier 


        <groupId>org.springframework</groupId> 
        <artifactId>spring-core</artifactId> 
        <packaging>jar</packaging> 
        <version>3.0.6.RELEASE</version> 

    groupId: 定义当前Maven项目隶属的实际项目。 
        1:Maven项目和实际项目不一定是一对一的关系,比如SpringFramework这一实际项目,这是 
             由于Maven中模块的概念,因为一个实际项目往往被划分成很多模块 
        2:groupId不应该对应项目隶属的组织或公司。原因很简单,一个组织下会有很多实际项目 
        3:groupId的表示方式与Java包名的表示方式类似,通常与域名反向一一对应 


    artifactId 
        定义实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀。 
        这样做的好处是方便寻找实际构件,在默认情况下,Maven生成的构件,其文件名会以artifactId作为 
        开头。如spring-core-3.0.6.RELEASE.jar 

    version 
        定义Maven项目当前所处的版本,如3.0.6.RELEASE 


     packaging 
        定义Maven项目的打包方式。 

         1:打包方式通常与所生成构件的文件扩展名对应,如上例中的packaging为jar,

             最终的文件名为spring-core-3.0.6.RELEASE.jar

                而使用war打包方式的Maven项目,最终生成的构件会有一个.war文件,不过这不是绝对的。 
            2:打包方式会影响构建的生命周期,比如jar打包和war打包使用不同的命令 
            3:当不定义packaging的时候,Maven会使用默认值jar 


    classifier 
            用来帮助定义构建输出的一些附属构件。附属构件与主构件对应, 
            如上例中的主构件是spring-core-3.0.6.RELEASE.jar,该项目可能还会通过使用一些插件生成如 
            spring-core-3.0.6.RELEASE-sources.jar,spring-core-3.0.6.RELEASE-doc.jar这样的附件构件, 
            其中包含了Java源代码和文档,这时候,javadoc和sources就是这两个附属构件的classifier. 
            这样附属也就拥有了自己唯一的坐标。 


        上述5个元素中,groupId,artifactId,version是必须定义的,packaging是可可选的(默认为jar),而 
        classifier是不能直接定义的。 


        同时,项目构件的文件名是与坐标相对应的,一般的规则为artifactId-version[-classifier].packaging 
        [-classifier]表示可选。 


扩展内容 


        强调一点的是:packaging并非一定与构件扩展名对应,比如packaging为maven-plugin的构件的扩展名为jar 
        此外,Maven仓库的布局也是基于Maven坐标 


        <artifactId>maven-shade-plugin</artifactId> 
        <version>2.0</version> 

        <packaging>maven-plugin</packaging>


        maven-shade-plugin-2.0.jar


        任何一个Maven项目都需要定义自己的坐标,当这个Maven项目成为其他Maven项目的依赖的时候,这组坐标就体现了 
其价值。 


<dependencies> 
        <dependency> 
                <groupId>junit</groupId> 
                 <artifactId>junit</artifactId> 
                  <version>4.8.2</version> 
                   <scope>test</scope> 
        </dependency> 
</dependencies> 
注意:当依赖范围是test的时候,该依赖只会被加入到测试代码的classpath中,也就是说,对于项目主代码, 
该依赖是没有任何作用的。JUnit是单元测试框架,只有在测试的时候才需要,因此使用该依赖范围 


GreenMail是开源的邮件服务测试套件,其详细信息可访问:http://www.icegreen.com/greenmail 


<plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
               <source>1.6</source> 
               <target>1.6</target> 
         </configuration> 
</plugin> 
maven-compiler-plugin的配置,其目的是开启Java5的支持 

目录
相关文章
|
12月前
|
Java Maven
08Maven - 定义maven坐标
08Maven - 定义maven坐标
68 0
|
4月前
|
XML Java 数据库连接
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
技术笔记:Maven的pom.xml(坐标的gav、依赖的scope)
90 0
|
5月前
|
Java Maven Spring
StringUtils工具类的maven坐标以及StringUtils.isBlank()和StringUtils.isEmpty()的区别
StringUtils工具类的maven坐标以及StringUtils.isBlank()和StringUtils.isEmpty()的区别
85 0
|
Java Maven
Maven - 通过 Jar 定位 Pom 坐标
Maven - 通过 Jar 定位 Pom 坐标
508 1
Maven - 通过 Jar 定位 Pom 坐标
|
Java 数据库连接 Maven
【Maven系列3】坐标与依赖
Maven确实比较简单,估计大家在工作期间,每天抽出一点时间,基础部分几天就可以学完,所以这块感觉真没有啥好讲的。 这篇文章先讲解依赖管理的基础知识,然后再结合一个简单的示例消耗一下。
274 0
【Maven系列3】坐标与依赖
|
存储 Java Apache
超级详细的Maven教程(三)Maven的坐标和仓库
之前通过一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,然后讲maven如何编译运行项目。接下来介绍maven中几个比较重要的概念:坐标和仓库。
超级详细的Maven教程(三)Maven的坐标和仓库
|
安全 Java 程序员
【Maven 入门教程】3、Maven 仓库、坐标以及依赖管理
【Maven 入门教程】3、Maven 仓库、坐标以及依赖管理
286 0
|
Java Maven
《maven实战》学习笔记4——maven坐标和依赖
maven坐标 maven坐标是什么 坐标一词最让人熟悉的就是读书时学的x、y轴的横竖坐标,平面中由x、y决定一个唯一的点,x、y就是坐标。三维中,x、y、z决定一个唯一的点,x、y、z就是坐标。而在maven中,就是groupId、artifactId、version、packaging等属性决定一个唯一的项目模块,这些属性就是maven项目的坐标。
2848 0
|
Java Apache Maven
Maven的核心笔记(3)常用命令、坐标和仓库
1.maven中常用的命令 mvn -v 查看maven的版本 compile编译(如果需要依赖其他包就需要自动下载) test测试 package 打包 clean 删除target包 install (安装jar包到本地仓库中) 2.在cmd中使用maven的archetype插件来创建项目结构(只需要了解) 一、maven的坐标和仓库 坐标:任何一个依赖,插件,项目构件的输出,都可称为构件,所有构件都以坐标作为地址。
1444 0
|
Java Maven
Maven 中的坐标和仓库
坐标、构建的概念 坐标:Maven世界中唯一标识一个构件的标识,一般由groupId/artifactId/version三部分组成,建议artifactId和项目名要一 致,这样更清晰,也更容易查找。