Maven实战之坐标和仓库

来源:互联网 发布:淘宝买剑三号安全吗 编辑:程序博客网 时间:2024/06/06 16:31

在前一篇中都有提到两个词,坐标和仓库,并且简单介绍了一下。下面再了解加深一下印象。

什么是坐标

坐标(Coordinate)不是几何中的X/Y,不是省、市、区、街道,不是经纬度,不过和这些的原理差不多,Maven的世界有数量非常巨大的构件库,例如平时用到的jarwar等文件。坐标元素包括groupIdartifactIdversionpackagingclassifier。想用Java7平台上的TestNG5.8版本时,告诉MavengroupId=org.testngartifactId=testng;version5.8;classifier=jdk7,就可以了。

 

为什么引入坐标

想想在引入坐标前,如果你要用springframework,就必须去SpringFramework网站去找下载,当需要log4j的时候就去Apache网站找,如果数量不多,都OK,但往往网站开发,是需要很多构件,并每个人都去下载,想想都会浪费很多人力成本。所以使用坐标唯一确定一个构件,让Maven来做这些寻找下载的事情,OK轻松多了。

 

依赖

坐标一般都写在依赖中,除了父元素。dependenciesdependency包含每一个依赖。除基本坐标外,还有type依赖的类型;scope依赖的范围,如果为test,则只有在测试的时候有用;optional标记依赖是否可选;exclusions用来排除传递性依赖。

仓库

Maven可以在某个位置统一存储所有Maven项目共享构件,这个统一位置就是仓库。对maven来说,仓库只有两类,本地仓库和远程仓库。

对用户来说,Maven提供一个免费的中央仓库,用户可以在本地服务器上搭建一个需要的私服,每个程序员在本地电脑上也有一个本地仓库,程序先从本地仓库找,如果没有从私服找,如果还没有就会从中央仓库找,找到以后下载到私服中,以后就可以从私服中下载使用了。中央仓库让全世界使用到的绝大多数开源类库,都能通过中央仓库找到,就是用前面说到的坐标。私服一般一个项目组在服务器上有一个就行,大家都从里面下载组件。

中央仓库是Maven核心自带的远程仓库,私服是另一种特殊的远程仓库,为了节省时间在局域网内架设一个仓库服务器,用它代理外部的远程仓库。



本地仓库配置

在用户范围(~/m2/repository/settings.xml)settings.xml文件中配置本地仓库的地址localRepository

<settings><localRepository>D:\java\repository\</localRepository></settings>

1、最常见的是依赖Maven从远程仓库下载到本地仓库;

2、将本地项目的构建安装到Maven仓库,执行mvn clean install

私服:

私服就是一种特殊的远程仓库,是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用。

私服就像是书房,如果你有一本书想看,可以从书房里找,如果书房中没有,可以从外面的书店买,然后放到书房,每次再看书就可以从书房中找。

中央仓库

初始的时候,本地仓库是空的,所以maven至少需要一个远程仓库。中央仓库就是一个默认的远程仓库,自带中央仓库的配置。在maven安装路径下的maven-model-builder-3.0.jar文件下,org/apache/maven/model/pom-4.0.0.xml(超级POM)有如下配置

<repositories><repository><id>central</id>   //id唯一标识<name>Maven Repository Switchborad</name><url>http://repol.maven.org.maven</url><layout>default</layout><snapshots><enabled>false</enabled> //所有快照忽略</snapshots></repository></repositories>


仓库搜索

使用仓库搜索服务根据关键字来得到Maven坐标。Nexus就是当前流行的开源Maven仓库管理软件,Nexus可以对关键字搜索、类名搜索、坐标搜索、校验、搜索等功能。

下载地址:http://www.sonatype.org/

打开网址: http://localhost:8080/nexus

 


 

其实还有很多搜索服务,用户根据自己的需要,选择了解其他的搜索服务。

 

总结:Maven功能看着很强大,其实其中需要我们做的并不多,它在一个约定好的环境中,统一配置,帮助项目工程节约大量的时间和人工。坐标和仓库就是maven能够工作的核心。

0 0
原创粉丝点击