Maven核心概念(1)--坐标

原创 2013年12月02日 19:07:30

注:转载时请注明原作者(lreis2010)及出处(http://blog.csdn.net/lreis2010/)!

        作者初次接触Maven是希望有一种方式能够自动化地管理项目中使用的Jar包。随着对于Maven的学习,可以了解到这是Maven的一大功能-管理项目依赖(Dependency)。

        为了管理项目依赖(Dependency),即各种Jar包,Maven必须能够精确地定位每一个Jar包,为此,Maven引入了坐标的概念。

        坐标,用于唯一标识一个物体的一组数据。

        下面是Maven对于Dependency的定义:(由于页面大小,作者删除了部分信息。有意者可以查看源文件(Dependency.java))

package org.apache.maven.model;
public class Dependency
    implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker
{
      //--------------------------/
     //- Class/Member Variables -/
    //--------------------------/
    private String groupId;
   
    private String artifactId;

    private String version;
   
    private String type = "jar";
   
    private String classifier;
   
    private String scope;

    private String systemPath;

    private java.util.List<Exclusion> exclusions;

    private String optional;

    private java.util.Map<Object, InputLocation> locations;
	  //-----------/
     //- Methods -/
    //-----------/
}

可见,Maven对于Dependency的坐标定义为(groupId,artifactId,version,type,classifier,scope)

1)groupId(The project group that produced the dependency)

groupId定义的是当前该Dependency所隶属的项目。例如Maven项目本身分为多个子项目:Settings、Settings Builder、Model Builder等,子项目Artifact的groupId定义为org.apache.maven。

2)artifactId(The unique id for an artifact produced by the project group)

artifactId定义的是该Artifact(子项目,暂时这么理解吧。好像Maven对它有更多的定义,以后有机会再修改吧)所标识的唯一标识。例如上文中的Artifact的artifactId定义为maven-artifact。首先,该artifactId标注了该子项目所隶属的项目maven,其次又唯一标示了该子项目artifact。

3)version(The version of the dependency)

version定义的是该依赖的版本号,Maven有一定的规范。等作者解析到了再分析。

4)type(The type of dependency)

type定义的是该依赖的打包方式,默认值为jar。该值涉及到ArtifactHandler,即Artifact的处理方式,稍后再议。

5)classifier( The classifier of the dependency)

classifier用来标识构建过程中的一些附属构件。该值涉及到ArtifactHandler,即Artifact的处理方式,稍后再议。

6)scope(The scope of the dependency)

classifier定义的是该依赖的使用范围。在Artifact类中有对于各种Scope的定义,包括Artifact.SCOPE_COMPILE、Artifact.SCOPE_COMPILE_PLUS_RUNTIME、Artifact.SCOPE_TEST、Artifact.SCOPE_RUNTIME、Artifact.SCOPE_RUNTIME_PLUS_SYSTEM、Artifact.SCOPE_PROVIDED、Artifact.SCOPE_SYSTEM、Artifact.SCOPE_IMPORT。

其中(groupId,artifactId,version)是必须的元素,type是可选的,默认值为jar。

(九)maven核心概念-坐标

maven的最大的功能是管理项目依赖,为了方便的自动化的解析java构件(jar,war等文件),maven需要将它们唯一标识,这是依赖管理的基础,每个java构件都要有自己的唯一标识,这个唯一标识就...

maven--4.概念(坐标、依赖)

1      坐标 1.1     什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点。在maven中坐标就是为了定位一个唯一确定的jar包。 Maven世界拥有大量构建,我们需要...

Maven 核心概念——生命周期

maven 生命周期(lifecycle)——生命周期是包含在一个项目构建中的一系列有序的阶段。 方便理解:mvn package 命令的生命周期。 当Maven经过以package为结尾...

maven用途、核心概念、用法、常用参数和命令、扩展

maven用途、核心概念、用法、常用参数和命令、扩展 博客分类:  Java 其他 开发工具   本文由浅入深,主要介绍maven的用途、核心概念(Pom、Reposi...

Maven核心概念之仓库,生命周期与插件

宏观图                             一、仓库            统一存储所有Maven项目共享的构建的位置就是仓库。         仓库分为本地仓库和远程仓库。远...

Maven 3 入门 -- 核心概念

坐标 例如上篇helloworld的pom.xml配置文件中的   com.zhaoyang HelloWorld 1.0-SNAPSHOT   其实就是坐标...

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

两年半前写的关于Maven的介绍,现在看来都还是不错的,自己转下。写博客的一大好处就是方便自己以后查阅,自己总结的总是最靠谱的。   由浅入深,主要介绍maven的用途、核心概念(Pom、Repo...
  • ichsonx
  • ichsonx
  • 2015年11月06日 09:59
  • 722

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

由浅入深,主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)、用法(Archetype意义及创建各种项目)、maven常...

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

转载地址:http://www.trinea.cn/android/maven/ 由浅入深,主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、B...

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

由浅入深,主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)、用法(Archetype意义及创建各种项目)、maven常...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Maven核心概念(1)--坐标
举报原因:
原因补充:

(最多只允许输入30个字)