maven的两个配置文件

来源:互联网 发布:淘宝男装店铺排行榜 编辑:程序博客网 时间:2024/05/18 02:54

maven有两个主要的配置文件

settings.xml:保存的是本地所有项目所共享的全局配置信息,默认在maven安装目录的conf目录下,如果没有安装maven而是用的m2eclipse插件,那么也可以把这个配置文件放到.m2目录下

pom.xml:描述项目的配置文件,放在每个项目的根目录下。

settings.xml

localRepository:本地仓库位置,默认在.m2/respository,可以认为更改

offline:离线开关,是否每次构建都从远程仓库下载,默认是false

servers:对应的POM文件的distributionManagement元素里定义id和登陆服务器的用户名、密码

mirrors:定义仓库镜像,将仓库地址指向自定义仓库地址

mirrorOf:以那个地址做镜像

proxies:设置HTTP代理

parent:给出父项目的位置,如果存在上一级父项目的话。如果没有特别指出的话,值就是父项目对于当前项目而言。

modelVersion:描述这个POM文件遵从那个版本的项目描述符

groupId:针对一个项目的普遍唯一识别符。通常用一个完全正确的包的名字来与其他项目的类似的名字进行区分

artifactId:在给定groupId的group里面为artifact指定的标示符是唯一的artifact代表的是被制作或者被一个project应用的组件,对于maven项目的artifact的例子包括一些JARS,源代码以及二进制的发布以及WARS.

packaging:这个项目生产出来的artifact类型,举个例子,jar war pom Plugins能够创建他们自己的包,所以这个列表不可能包含所有可能的类型。

name:当前项目的名称

version 当前项目产生的artifact的当前版本

description 当前项目的一个细节描述,当需要描述这个项目的时候被maven所用,比如在web站点中。

url:当前项目的主页的URL

prerequisites:描述当前项目的编译环境的先决条件

issueManagement:当前项目的发布管理信息

ciManagement     当前项目的连续集成信息。

inceptionYear     当前项目开始的年份, 用4位数字描述. 涉及到介绍情况时用作提供版权信息

mailingLists     包含的信息包括邮件列表

developers     描述当前的项目的开发人员的信息

contributors     描述对当前项目有贡献的人员的信息,不特指开发人员

licenses     这个元素描述了当前项目的所有的许可文件。每一个许可文件用一个许可元素来描述,然后描述额外的元素. 通常只列出适用于这个项目的许可文件以及适用于 依赖的非licenses。如果多个licenses都列出来了,那么假设这个用户选择其中的所需的,而不是接受所有的许可文件。 

scm     指定当前项目中的版本控制工具,比如CVS, Subversion, 等等

organization     这个元素描述这个项目所属组织的各种属性的描述。这些属性应用于文档创建的时候 (版权通知和链接).

build     创建项目时必须的信息。
profiles     本地项目编译档案文件时的列表,被激活时会修改build的过程 
modules     模块 (有时被叫做子项目)作为当前项目的一部分.每一个被列出来的子模块都指向包含这个模块的目录文件的相对路径 
repositories     发现依赖和扩展的远程资源库
pluginRepositories     发现plugins 的远程资源库的列表,主要是为了编译和报告
dependencies     这个元素描述了所有与当前项目相关的依赖.这些依赖被用作创建一个编译时的路径. 他们被自动的从资源库中下在下来依据当前项目的定义。如需更多信息,参看 the dependency mechanism 
reports     Deprecated.禁止适用。现在的版本中被 Maven所忽略掉。
reporting     这个元素包括报告的plugins 的指定,用作Maven生成站点的自动生成报告.这些报告将会运行当用户执行mvn site. 所有的报告将会包括在浏览器的导航栏中。 
dependencyManagement     缺省的依赖信息将会从这个元素中继承。这些依赖在这一部分中被不立刻被解决的。当一个源于这个POM的元素描述了一个依赖根据匹配的 groupId 和artifactId,这个部分的版本和其他值用作那些还没有指定的依赖。
distributionManagement     对于一个项目分配的信息允许对于远程web服务器和资源库的site和artifacts配置。


pom作为项目对象模型,通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵守的原则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。

基本内容:
POM包括了所有的项目信息。
maven 相关:
pom定义了最小的maven2元素,允许groupId,artifactId,version。所有需要的元素

groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为:/org/codehaus/mojo
artifactId: 项目的通用名称
version:项目的版本
packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
classifier: 分类

主要为依赖,继承,合成

groupId, artifactId, version:描述了依赖的项目唯一标志
可以通过以下方式进行安装:

使用以下的命令安装:
mvn install:install-file –Dfile=non-maven-proj.jar –DgroupId=some.group –DartifactId=non-maven-proj –Dversion=1
创建自己的库,并配置,使用deploy:deploy-file
设置此依赖范围为system,定义一个系统路径。不提倡。
type:相应的依赖产品包形式,如jar,war
scope:用于限制相应的依赖范围,包括以下的几种变量:
compile :默认范围,用于编译
provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
runtime:在执行时,需要使用
test:用于test任务时使用
system:需要外在提供相应得元素。通过systemPath来取得
systemPath: 仅用于范围为system。提供相应的路径
optional: 标注可选,当项目自身也是依赖时。用于连续依赖时使用

外在告诉maven你只包括指定的项目,不包括相关的依赖。此因素主要用于解决版本冲突问题

表示项目maven-embedder需要项目maven-core,但我们不想引用maven-core


0 0
原创粉丝点击