您的位置:首页 > 其它

Maven学习笔记二

2016-10-20 15:16 176 查看

POM

Project Object Model:项目的属性、依赖、构建配置这些信息都被抽象到项目对象(POM)里面。

POM组成

-项目基本信息:groupId:artifactiId:packaging:version

-构建环境

-POM关系

-构建设置

插件与目标

使用命令:pluginId:goalId,例如mvn archetypr:generate

常用插件

maven-archetype-plugins

maven-dependency-plugin

maven-help-plugin

maven-resources-plugin

maven-surefire-plugin:执行单元测试

jetty-maven-plugin:

maven-enforcer-plugin

项目的生命周期阶段

maven中项目的生命周期是指项目的构建过程,它包含了一系列的有序的阶段,而一个阶段就是构建过程中的一个步骤。

插件目标可以绑定到生命周期阶段上,一个生命周期阶段可以绑定多个插件目标。

依赖管理

依赖范围scope

compile(编译范围)

provided(已提供范围)

runtime(运行时范围)

test(测试范围)

system(系统范围)

仓库依赖

存放所有依赖的仓库,通过依赖目标的坐标进行管理

maven仓库

在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件

Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库。(仓库就是存放依赖和插件的地方),任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径。

分类:可分为本地仓库远程仓库,其中远程仓库又可分为中央仓库、私服、其他公共库.

-本地仓库

在本地安装Maven后,在安装目录下settings.xml中配置本地仓库地址

<settings>
<localRepository>D:\maven_new_repository</localRepository>
</settings>


-远程仓库

-中央仓库

中央仓库是默认的远程仓库,maven在安装的时候,自带的就是中央仓库的配置。中央仓库在超级POM中配置,所有的maven项目都会继承超级POM

<repository>

<id>central</id>

<name>Central Repository</name>

<url>http://repo.maven.apache.org/maven2</url>

<layout>default</layout>

<snapshots>

<enabled>false</enabled>

</snapshots>

</repository>


-私服

私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。

当前主流的maven私服:

1.Apache的Archiva

2.JFrog的Artifactory

3.Sonatype的Nexus

远程仓库的配置

在pom.xml文件中< repositories>< / repositories>中可以配置多个远程仓库,有时我们要对远程仓库的访问进行认证,一般将认证信息配置在settings.xml中,做如下配置,其中< id>< /id>必须与POM中需要认证的的repository元素的Id一致。

<servers>

<server>

<id>same with repository id in pom</id>

<username>username</username>

<password>pwd</password>

</server>

</servers>


如何将生成的项目部署到远程仓库

完成这项工作,也需要在POM中进行配置,这里有新引入了一个元素:< distributionManagement>

distributionManagement包含了2个子元素:repository和snapshotRepository, 前者表示发布版本构件的仓库,后者表示快照版本的仓库

这两个元素都需要配置 id(该远程仓库的唯一标识),name,url(表示该仓库的地址)

向远程仓库中部署构件,需要进行认证。配置如下:

<servers>

<server>

<id>same with repository id in pom</id>

<username>username</username>

<password>pwd</password>

</server>

</servers>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven