Maven入门-3.pom文件和settings文件
1、pom.xml文件介绍
Maven项目的核心是pom.xml,pom(Project Object Model项目对象模型)
pom.xml文件定义了项目的基本信息,项目构建,项目依赖等。
<project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns:xsi = " http://www.w3.org/2001/XMLSchema-instance "xsi:schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "><modelVersion>4.0.0</modelVersion><groupId>com.fz.shiro</groupId><artifactId>ShiroTest</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>ShiroTest Maven Webapp</name></project>
porject:是所有元素的根元素
以下元素(groupId,artifactId,packaging,version)是maven的坐标,他们唯一标识了一个项目
modelVersion:指定了当前模型的版本,对于Maven2和Maven3来说,它只能说4.0.0
groupId:定义了项目属于哪个组,假如你在github上建立一个demo项目,那groupId应该com.github.demo。如果你的公司是百度,有个helloword的项目。那groupId应该为com.baidu.helloword如果你的helloword项目有很多模块,则按模块化分。com.baidu.helloword.模块名称
artifactId:定义了当前maven项目在组中的唯一ID,假如你的项目为myapp,groupId为com.baid.myapp。那你的artifactId可以按模块划分。例如当前编写的是myapp项目中的工具类,则artifactId可以为myapp-utils
packaging:表示打包后项目的类型(默认是jar),web项目为war
version:指定了当前项目的版本,SNAPSHOT意为快照,表示正在开发中,不是稳定版本。
name:声明了一个对于用户更为友好的项目名称
图片来自于: 史上最全的maven的pom.xml文件详解

2、settings.xml文件介绍
包含了本地仓库位置,远程仓库服务器以及认证信息等。
settings.xml存在于两个地方:
- 安装的地方:$M2_HOME/conf/settings.xml
- 用户的目录:${user.home}/.m2/settings.xml
前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><!--指定本地仓库存储路径。默认值为~/.m2/repository 即 ${user.home}/.m2/repository。 --><localRepository>d:/.m2/repository</localRepository><!--指定Maven是否需要和用户输入进行交互。true:需要与用户交互;false:使用一个合理的默认值。默认值为true。 --><interactiveMode>true</interactiveMode><!--指定是否使用plugin-registry.xml文件来管理插件版本。设为true表示使用。默认值为false。 --><usePluginRegistry>false</usePluginRegistry><!--指定是否在离线模式下运行。设为true表示项目构建要在离线模式下运行,默认值为false。 --><offline>false</offline><!-- 指定插件groupId列表,用于搜索时插件的groupId没有明确规定。 --><pluginGroups><!-- 指定使用插件查找进一步的组标识符 --><pluginGroup>com.micmiu.plugins</pluginGroup></pluginGroups><!-- 指定这台机器连接到网络的代理服务器的列表。除非另有规定(系统属性或命令行开关), 列表中配置的第一代理将被激活使用。 --><proxies><!-- 配置代理服务器的相关参数 --><proxy><!-- 代理标识ID,默认值:default --><id>micmiuProxy</id><!-- 指定是否激活,默认值:true --><active>true</active><!-- 指定代理协议,默认值:http --><protocol>http</protocol><!-- 指定代理认证的用户名 --><username>micmiu</username><!-- 指定代理认证用户的密码 --><password>mypwd</password><!-- 指定代理服务器的主机名 --><host>micmiu.com</host><!-- 指定代理服务的端口 默认值:8080 --><port>80</port><!-- 指定不被代理的主机名列表。多个用|分隔。 --><nonProxyHosts>ctosun.com|ctosun.micmiu.com</nonProxyHosts></proxy></proxies><!-- 这是一个认证配置的列表,系统内部根据配置的serverID使用。认证配置用于maven链接到远程服务 --><servers><!-- 指定的身份认证信息用于连接到一个特定的服务器时,确定系统内的唯一的名称(简称下面的'id'属性)。 --><server><!-- 这是server的id(注意不是用户登陆的id)。该id与distributionManagement中repository元素的id必须要匹配。 --><id>micmiu-releases</id><!-- 服务器认证的用户名 --><username>michael</username><!-- 服务器认证的用户对应的密码 --><password>mypwd</password></server><!-- 另一个示例 私钥/密码 --><server><id>micmiu-snapshots</id><!-- 认证时使用的私钥文件。 --><privateKey>/home/micmiu/.ssh/id_dsa</privateKey><!-- 认证时使用的私钥密码,没有密码就设为空 --><passphrase>mypwd</passphrase><!-- 目录被创建时的权限设置。其值对应了unix文件系统的权限,如664,或者775 --><directoryPermissions>775</directoryPermissions><!-- 仓库文件创建时的权限设置。其值对应了unix文件系统的权限,如664,或者775。 --><filePermissions>664</filePermissions></server></servers><!-- 指定镜像列表,用于从远程仓库下载资源 --><mirrors><!-- 指定仓库的镜像站点,代替一个给定的库。该镜像藏库有一个ID相匹配的mirrorOf元素。 ID是用于继承和直接查找目的,必须是唯一的。 --><mirror><!--该镜像的唯一标识符。id用来区分不同的mirror元素。 --><id>mirrorId</id><!--被镜像的服务器的id,比如:central,不能和id匹配。 --><mirrorOf>central</mirrorOf><name>micmiu for dev.</name><url>http://dev.micmiu.com/repo/maven2</url></mirror></mirrors><!-- 这是一个可以在各种不同的方式激活的配置文件列表,并可以修改构建过程。在settings.xml中提供的信息, 旨在提供本地机器允许建立在本地环境中工作的具体路径和库位置。有多种方式可以激活配置属性:一种在settings.xml中<activeProfiles>指定;另一种实质上依赖于系统属性,无论是匹配特定的属性值或只是测试到它的存在.配置文件也可以根据JDK版本的前缀进行激活,1.4 可以激活1.4.2_07注:对于在settings.xml中定义的配置,你仅限于指定资源仓库、插件仓库和用于插件在POM中变量的自由形式属性的定义 --><profiles><!-- 指定生成过程的介绍,使用一个或多个上述机制被激活。对于继承而言,激活通过<activatedProfiles/>或命令行配置文件,配置文件必须有一个唯一的ID。此配置文件的例子使用的JDK版本触发激活。 --><profile><!--该配置的唯一标识符。 --><id>jdk-1.4</id><!--自动触发配置文件的逻辑定义。Activation的逻辑配置决定了是否开启该profile。activation元素并不是激活profile的唯一方式。settings.xml文件中的activeProfile元素可指定需要激活的profile的id。 profile也可以通过在命令行,使用-P标记和逗号分隔的列表来显式的激活 --><activation><!--指定是否激活的标识 默认值为false --><activeByDefault>false</activeByDefault><!--当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有不是以1.4开头的JDK版本。 --><jdk>1.4</jdk><!-- 当检测到匹配的操作系统属性时,指定该配置文件将被激活, --><os><!--激活profile的操作系统的名字 --><name>windows 7</name><!--激活profile的操作系统所属家族(如 'windows') --><family>windows</family><!--激活profile的操作系统体系结构 --><arch>x86</arch><!--激活profile的操作系统版本 --><version>6.1</version></os><!-- 检测系统对应的属性和值(该值可在POM中通过${属性名称}引用),配置就会被激活。 如果值字段是空的,那么存在属性名称字段就会激活 --><property><!-- 属性的名称 --><name>mavenVersion</name><!-- 属性的值 --><value>3.0.4</value></property><!-- 通过检测该文件的是否存在来激活配置。missing检查文件是否存在,如果不存在则激活profile;exists则会检查文件是否存在,如果存在则激活。 --><file><!--如果指定的文件存在,则激活profile。 --><exists>/usr/local/micmiu/workspace/myfile</exists><!--如果指定的文件不存在,则激活profile。 --><missing>/usr/local/micmiu/workspace/myfile</missing></file></activation><!-- 对应profile的扩展属性列表。Maven属性和Ant中的属性一样,可以用来存放一些值。这些值可以在POM中的任何地方使用标记${X}来使用,这里X是指属性的名称。属性有五种不同的形式,并且都能在settings.xml文件中访问。 1\. env.X: 表示系统环境变量。例如,"env.PATH"等同于 $path环境变量(在Windows上是%PATH%)。 2\. project.x:表示 POM中对应的属性值。 3\. settings.x:表示 settings.xml中对应属性值。 4\. Java系统属性: 所有可通过java.lang.System.getProperties()访问的属性都能在POM中使用该形式访问。5\. x: 在<properties/>元素中,或者外部文件中设置,以${someVar}的形式使用。 --><properties><user.blog>www.micmiu.com</user.blog></properties></profile><!-- 这是另一个配置文件,根据系统属性来激活 --><profile><!--该配置的唯一标识符。 --><id>env-dev</id><activation><property><!-- 被用来激活配置文件的属性的名称 --><name>target-env</name><!-- 被用来激活配置文件的属性的值 --><value>dev</value></property></activation><!-- 指定配置文件的扩展配置 内容采取property.value的形式 --><properties><tomcatPath>/path/to/tomcat/instance</tomcatPath></properties></profile><profile><id>repo-dev</id><!-- 配置远程仓库列表 --><repositories><!-- 远程仓库的配置信息 --><repository><!-- 远程仓库唯一标识 --><id>nexus</id><!-- 远程仓库名称 --><name>nexus for develop</name><!-- 远程仓库URL --><url>http://192.168.1.8:8080/nexus/content/groups/public/</url><layout>default</layout><releases><!--是否使用这个资源库下载这种类型的构件 默认值:true --><enabled>true</enabled><!--指定下载更新的频率。这里的选项是:always(一直),daily(每日,默认值),interval:X(这里X是指分钟),或者never(从不)。 --><updatePolicy>daily</updatePolicy><!--当Maven验证构件校验文件失败时该怎么做fail(失败)或者warn(告警)。 --><checksumPolicy>warn</checksumPolicy></releases><snapshots><!--是否使用这个资源库下载这种类型的构件 默认值:true --><enabled>true</enabled><!--指定下载更新的频率。这里的选项是:always(一直),daily(每日,默认值),interval:X(这里X是指分钟),或者never(从不)。 --><updatePolicy>daily</updatePolicy><!--当Maven验证构件校验文件失败时该怎么做fail(失败)或者warn(告警)。 --><checksumPolicy>warn</checksumPolicy></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>nexus</id><name>local nexus</name><url>http://192.168.1.8:8080/nexus/content/groups/public</url><layout>default</layout><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories></profile></profiles><!-- 指定被激活的配置文件 --><activeProfiles><activeProfile>repo-dev</activeProfile></activeProfiles></settings>
Maven入门-3.pom文件和settings文件的更多相关文章
- Maven实战:pom.xml与settings.xml
pom.xml与settings.xml pom.xml与setting.xml,可以说是Maven中最重要的两个配置文件,决定了Maven的核心功能,虽然之前的文章零零碎碎有提到过pom.xml和s ...
- Eclipse 工程目录下的.classpath、.project文件和.settings文件作用
1..classpath 定义了你这个项目在编译时所使用的$CLASSPATH (注: 每次在更新jar的版本或者增加jar之后,请在SVN提交.classpath文件,否则工程的build path ...
- maven学习之pom.xml或settings.xml对nexus的配置(转)
(1)在POM中配置Nexus仓库 <project> ... <repositories> <repository ...
- Maven入门2-pom.xml文件与settings.xml文件
Maven入门2-pom.xml文件与settings.xml文件 本文内容来源于官网文档部分章节,settings.xml文件:参考http://maven.apache.org/settings. ...
- Maven快速入门(四)Maven中的pom.xml文件详解
上一章,我们讲了Maven的坐标和仓库的概念,介绍了Maven是怎么通过坐标找到依赖的jar包的.同时也介绍了Maven的中央仓库.本地仓库.私服等概念及其作用.这些东西都是Maven最基本.最核心的 ...
- [maven] settings 文件节点配置详解
基本结构 <settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...
- Eclipse 配置 maven 的两个 settings 文件
eclipse配置的settings文件名完全可以自定义,而本机maven只认识settings.xml文件. eclipse里配置maven有一个叫全局的,有一个叫用户的.这两个文件可以和本机mav ...
- maven项目的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0 " 2 xmlns:xsi="http://www.w3.org ...
- Maven学习总结(十一)——Maven项目对象模型pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
随机推荐
- The way to Go(3): 安装Go环境
Reference: Github: Go Github: The way to Go 在mac上安装Go语言初体验 安装Go环境 Go 语言开发团队开发了适用于以下操作系统的编译器: Linux F ...
- 【转载】可被路由的协议 & 路由协议 & 不可被路由的协议 的区别
原文地址:可被路由的协议 & 路由协议 & 不可被路由的协议 的区别 术语routed protocol(可被路由的协议)和routing protocol(路由协议)经常被混淆.可被 ...
- UVa 10954 全部相加(Huffman编码)
https://vjudge.net/problem/UVA-10954 题意:有n个数的集合S,每次可以从S中删除两个数,然后把它们的和放回集合,直到剩下一个数.每次操作的开销等于删除的两个数之和, ...
- (转)Linux I/O 调度方法
Linux I/O 调度方法 转自https://blog.csdn.net/theorytree/article/details/6259104 操作系统的调度有 CPU调度 CPU sche ...
- 非[无]root权限 服务器 下安装perl以及perl模块--转载
转载自http://www.zilhua.com 在本博客中,所有的软件安装都在服务器上,且无root权限.理论上适合所有的用户. 我的安装目录 cd /home/zilhua/software 1. ...
- win10 鼠标指针
https://www.ithome.com/html/zhuti/26449.htm
- Windows 2008 更改网卡绑定顺序
用 ncpa.cpl 或者用鼠标右键点网上邻居进去也好. 来到网卡列表画面. 然后,你会发觉没有菜单去操作[高级设置], 这里,最高级的步骤来了, 就是你需要按一个 [Alt]把菜单给显示出来,太神奇 ...
- 雷林鹏分享:Ruby 字符串(String)
Ruby 字符串(String) Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符. 最简单的字符串是括在单引号(单引号字符)内.在引号标记内的文本 ...
- Sergey's problem CodeForces - 1019C (图论,构造,神题)
链接 大意: 给定有向图, 求选择一个点集$S$, 使得$S$任意两点不相连, 且对于不属于$S$的任意点$x$, 均存在$S$中的点$y$, 使得$d(x,y)<=2$, $d(x,y)$为从 ...
- POJ-3894 迷宫问题 (BFS+路径还原)
定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...