参考:
settings.xml: http://www.cnblogs.com/yakov/archive/2011/11/26/maven2_settings.html
pom.xml: http://www.blogjava.net/jianyue/articles/227932.html
附件:Maven.xmind
1 settings.xml
1.1 位置:
- 用户配置:用户目录:user.home/.m2/
- 全局配置:全局目录:安装目录/conf/
1.2 结构:
- <localRepository />本地仓库路径
- <interactiveMode /> 是否需要与用户交互得到输入
- <usePluginRegistry /> 若使用.m2/plugin-registry.xml管理plugin的版本,就设为true
- <offline /> 若构建系统离线工作,设为true;当构建服务器因网络或安全问题不能与远程仓库相连,该设置很有用
- <pluginGroups />
-
<pluginGroups><pluginGroup>org.mortbay.jetty</pluginGroup></pluginGroups>
-
- <servers />
- <id /> server的ID,与reposityor/mirror中的id匹配
-
<username /><password /> 成对出现,用户验证
-
<privateKey /><passphrase/> 成对出现,分别指向一个私钥
-
<filePermissions /><directoryPermissions /> 权限许可,如linux权限:644 775
- <configuration />
- <mirrors />
- <id /> 镜像标识
- <name /> 镜像名称
- <url /> 镜像基本的URL,连接仓库,不是原来的仓库URL
- <mirrorOf /> 镜像包含的仓库Id
- <proxies />
- <id /> proxy唯一标识
- <active /> proxy被激活的时候设为true 同一时间仅有一个被激活
-
<protocol /> <host /> <prot /> 代理地址protocol://host:port的分散形式
-
<username /> <password /> 连接proxy服务器认证
- <nonProxyHosts /> 列出了不需要使用代理的hosts
- <profiles /> pom.xml中的profile的简洁形式
- <id />
- <activation />
- <activeByDefault />
- <jdk /> 内建jdk版本检测,如果检测的与期待一致,则激活
- <os /> 操作系统属性
- <name />
- <family />
- <arch />
- <version />
- <property /> 是否检测到对应名称对属性
- <name />
- <value />
- <file /> 给定文件存在与否
- <exists />
- <missing />
- <repositories />
- <id />
- <name />
- <releases />
- <enabled />
- <updatePolicy /> 指明了更新的频率
- <checksumPolicy />部署了相应的校验和文件;可选的为:ignore,fail,warn,或者不正确的校验和
- <snapshots />
- <enabled />
- <updatePolicy />
- <checksumPolicy />
- <url />
- <layout /> 统一的布局
- <pluginRepositories /> 包含两种构件:1 用来做其它构件依赖的构件;2 插件
- <properties /> 五种形式:
- env.X 返回当前环境变量
- project.X pom中相关的元素值
- settings.X settings.xml中对应元素值
- java.home java.lang.System.getProperties()定义的属性
- X 被<properties />或者外部文件定义的属性
- <activeProfiles /> 激活配置
2 常用命令:
- mvn archetype:create 创建maven项目
- 建立Java项目 mvn archetype:create -DgroupId=com.demo -DartifactId=App
- 建立一个web项目 mav archetype:create -DgroupId=com.demo -DartifactId=webApp -DarchetypeArtifactId=maven-archetype-webapp
- mvn compile 编译源代码
- mvn test-compile 编译测试代码
- mvn test 运行应用程序中的单元测试
- mvn site 生成项目相关的网站
- mvn clean 清除目标目录中生成结果
- mvn package 依据项目生成jar文件
- mvn install 在本地repository中安装jar
- mvn eclipse:eclipse 生成Eclipse项目文件
- Eclipse WTP 项目执行 mvn eclipse:eclipse -Dwtpversion=1.0
3 pom.xml
http://www.blogjava.net/jianyue/articles/227932.html
4 Nexus
4.1 特点:
- 1 加速构建 maven更新插件或者依赖snapshot时,对远程仓库提交数十数百请求
- 2 节省带宽: 1 节省本地带宽 1 节省本地带宽
- 3 可预见性+稳定性
- 4 控制+审计
- 5 部署第三方构件
- 6 搭建内部仓库:私服!
- 7 可以建立公共仓库,比如开源项目的话