《Maven 实战》笔记之setting.xml介绍
maven是什么?有什么用?
Maven是一个跨平台的项目管理工具,主要服务于Java平台的项目构建,依赖管理和项目信息管理。项目构建包括创建项目框架、清理、编译、测试、到生成报告,再到打包和部署,项目信息包括项目描述,开发者列表,版本,项目文档,测试报告,静态分析报告,源码版本日志报告。
Windows上安装Maven
1.检查JDK:java -v
2.下载maven:https://maven.apache.org/download.cgi 选择apache-maven-3.3.3-bin.zip
3.本地安装:
解压文件到指定目录下,如D:\apache-maven-3.3.3,在系统变量中新一个M2_HOME变量名,变量值为该安装目录,然后在Path中添加%M2_HOME%\bin,重启命令窗口,输入echo %M2_HOME%,如果输出安装目录,表示配置没问题,再输入mvn -v 输出版本号和path中信息表示安装成功。
seeting.xml文件配置详解
1.配置本地仓库:
maven默认仓库是:${user.home}/.m2/repository,通常在C盘,随着仓库内容越来越大,放在C盘显然不太好,下面配置是自定义仓库目录。
<localRepository>F:/maven/apache-maven-3.2.5/repo</localRepository>
这里我放在了maven的安装目录下。
2.设置离线模式
如果不想maven连接远程仓库,只使用本地仓库,可将maven设置为离线模式,默认为false。
<offline>false</offline>
3.设置HTTP代理
如果当前网络无法直接连接maven中央仓库,那么就可设置代理连接了。
<proxy>
<!-- id -->
<id>optional</id>
<!-- 是否启用 -->
<active>true</active>
<!-- 协议 -->
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<!-- 不使用代理的主机地址 -->
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
4.设置插件组
Maven在解析插件仓库元数据的时候,会默认使用org.apache.maven.plugins和org.codehaus.mojo两个groupId。如果增加自定义的插件组可在setting.xml中配置,这样maven在解析命令先会在org/apache/maven/plugins/maven-metadata.xml中找,如果没找到再去org/codehaus/mojo/maven-metadata.xml,如果还没找到就去下面自定义的插件组,如果还没搜索到就报错。
<pluginGroups>
<pluginGroup>com.your.plugins</pluginGroup>
</pluginGroups>
5.配置服务器认证
如果需要每一个连接maven仓库的连接提供认证信息,才提供相关下载服务,那么可以配置认证。
<servers>
<server>
<!-- id与pom中配置的id相同 -->
<id>depRepo</id>
<username>user</username>
<password>pass</password>
</server>
</servers>
或者
<server>
<id>siteServer</id>
<!-- 密匙 -->
<privateKey>/path/to/private/key</privateKey>
<!-- 密码 -->
<passphrase>optional; leave empty if not used.</passphrase>
</server>
6.配置镜像
通常我们直接连接maven中央库下载jar包会比较慢(一是使用的人多,二是中央库在国外),这时如果国内有一个服务器同样可以下载中央库里的所有资源,我们就称它为中央库的镜像,国内镜像越多就能很好的分流,从而提高下载速度。
<mirrors>
<mirror>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
这些镜像地址可以在网上搜索到,其中mirrorOf表示任何对maven中央库的请求都会转到这个镜像上,从而屏蔽掉了maven中央库,如果这个镜像忽然不可用了,那么maven也不会去连接maven中央库。
7.个性化配置
场景一:实现多环境自动切换,如开发环境,生产环境,测试环境。
<profiles>
<!-- 测试环境 -->
<profile>
<id>env-test</id>
<activation>
<!-- 默认激活该环境 -->
<activeByDefault>true</activeByDefault>
</activation>
<!-- 定义一个属性文件,其他地方只需要${profiles.activation}即可引用里面的值 -->
<properties>
<profiles.activation>xmj_old</profiles.activation>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<!-- 配置项目自动发布服务器 -->
<url>http://xx.xx.xx.xx:8080/manager/text</url>
<path>/xmj-manager</path>
<server>Tomcat</server>
<warFile>target/${profiles.activation}.war</warFile>
</configuration>
</plugin>
</plugins>
</build>
<profile>
<!-- 生产环境 -->
<profile>
<id>env-production</id>
<!-- 定义一个属性文件,其他地方只需要${profiles.activation}即可引用里面的值 -->
<properties>
<profiles.activation>xmj_new</profiles.activation>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<!-- 配置项目自动发布服务器 -->
<url>http://xx.xx.xx.xx:8080/manager/text</url>
<path>/xmj-manager</path>
<server>Tomcat</server>
<warFile>target/${profiles.activation}.war</warFile>
</configuration>
</plugin>
</plugins>
</build>
<profile>
</profiles>
执行profile
命令:clean instance 使用默认激活环境,也就是dev-test
clean instance -P env-production 使用 env-production环境构建
场景二:配置Nexus仓库
<profile>
<id>nexus</id>
<!-- 激活配置 -->
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
<!-- 构件仓库 -->
<repositories>
<repository>
<id>public</id>
<name>Nexus-public</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
<!-- 插件仓库 -->
<pluginRepositories>
<pluginRepository>
<id>public</id>
<name>Nexus-public</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<!-- 激活列表,构建时列表的中的profile均被激活 -->
<activeProfiles>
<activeProfile>env-test</activeProfile>
<activeProfile>nexus</activeProfile>
</activeProfiles>
《Maven 实战》笔记之setting.xml介绍的更多相关文章
- Maven学习笔记(一) : 简单介绍
近期在学习<maven实战>,写点东西记录一下.^_^ 何为Maven: Maven主要服务于基于java平台的项目构建.依赖管理和项目信息管理. Maven是优秀的构建工具: ...
- [maven] 实战笔记 - 构建、打包和安装maven
① 手工构建自己的maven项目 Maven 项目的核心是 pom.xml.POM (Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等 ...
- [maven] 实战笔记 - maven 安装配置
1.下载地址http://maven.apache.org/download.html 2.windows下安装maven(1)下载 apache-maven-3.0-bin.zip 解压到任意目录下 ...
- MAVEN学习笔记之私服Nexus(2)
MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Admin ...
- Maven实战03_Maven使用入门
1:pom.xml Maven项目的核心文件,非常重要.POM(Project Object Model)项目对象模型,其定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等. 创建一个最简单 ...
- Maven学习笔记—私服(包含maven的setting.xml配置)
为什么要用远程仓库(私服) 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件,这样就加大了中央仓库 ...
- 学习笔记——Maven实战(七)常用Maven插件介绍(上)
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了 ...
- 学习笔记——Maven实战(八)常用Maven插件介绍(下)
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...
- maven -- 学习笔记(二)之setting.xml配置说明(备忘)
setting.xml配置说明,learn from:http://pengqb.javaeye.com,http://blog.csdn.net/mypop/article/details/6146 ...
随机推荐
- 阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
创建数据库ssm并创建表account create database ssm; use ssm; create table account( id int primary key auto_incr ...
- 第一个python-ui界面
首先是安装eric6简直是个灾难,先是找不到汉化版的eric6,好不容易找到了,一打开eric6的窗体就说designer.exe不存在,确实在PyQt5里没有,明明在PyQt5-tools里面有,最 ...
- hibernate之inverse=true相关配置讲解
首先inverse=”true”是在双向关联里面使用单向关联没有这个配置 inverse – 标记由哪一方来维护关联关系(双向关联中会用到) inverse默认值为false 如果inverse设 ...
- C# 线程thread
一.问题总结 1. 在WinForm开发过程中用到线程时,往往需要在线程中访问线程外的控件,比如:设置textbox的Text值等等.如果直接访问UI控件会报出“从不是创建控件的线程访问它”错误.控件 ...
- @Transient注解的使用(不被序列化和作为临时变量存储)
转自:https://blog.csdn.net/sinat_29581293/article/details/51810805 java 的transient关键字的作用是需要实现Serilizab ...
- 爬取糗事百科热门段子的数据并保存到本地,xpath的使用
和之前的爬虫类博客的爬取思路基本一致: 构造url_list,因为糗事百科的热门栏目默认是13页,所以这个就简单了 遍历发送请求获取响应 提取数据,这里用的是xpath提取,用的是Python的第三方 ...
- # 深圳杯D题爬取电视收视率排行榜
目录 深圳杯D题爬取电视收视率排行榜 站点分析 代码实现 深圳杯D题爬取电视收视率排行榜 站点分析 http://www.tvtv.hk/archives/category/tv 每天的排行版通过静态 ...
- BM求线性递推模板(杜教版)
BM求线性递推模板(杜教版) BM求线性递推是最近了解到的一个黑科技 如果一个数列.其能够通过线性递推而来 例如使用矩阵快速幂优化的 DP 大概都可以丢进去 则使用 BM 即可得到任意 N 项的数列元 ...
- redis 学习(二)-- 通用命令
redis 学习(二)-- 通用命令 1. keys pattern 含义:查找所有符合给定模式(pattern)的key 命令 含义 keys * 遍历所有 key keys he[h-l]* 遍历 ...
- git删除已经push的远程文件或文件夹
在使用git提交项目时,有时候会误提交一下文件,比如:*.iml,*.project,*.settings,.idea/*等文件,有时候这些不需要提交的文件可以加入到.gitignore,在提交的时候 ...