当前位置: 首页 > 编程日记 > 正文

《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>

转载于:https://www.cnblogs.com/manliu/p/4660270.html

相关文章:

框架依赖注入和普通依赖注入_依赖注入快速入门:它是什么,以及何时使用它...

框架依赖注入和普通依赖注入by Bhavya Karia通过Bhavya Karia 介绍 (Introduction) In software engineering, dependency injection is a technique whereby one object (or static method) supplies the dependencies of another object. A dependency is an object that ca…

微信小程序自定义弹出框组件,模拟wx.showModal

微信小程序开发交流qq群 173683895 效果图&#xff1a; 代码 wxml <view wx:if{{showModal}}><view classmask_layer bindtapmodal_click_Hidden /><view classmodal_box><view class"title">取消订单</view><view classconte…

IOS tableView删除数据

NSMutableArray *_allshops; NSMutableArray *_deleteshops; -(IBAction)remove{ 1. //记录删除的行号 //创建动态数组存放行号的集合 NSMutableArray *deletepath [NSMutableArray array]; //遍历存放删除数据的数组&#xff0c;把行号放到deletepath中 for (Shop * s in _de…

vue.js 源代码学习笔记 ----- 工具方法 lang

/* flow */ // Object.freeze 使得这个对象不能增加属性, 修改属性, 这样就保证了这个对象在任何时候都是空的 export const emptyObject Object.freeze({}) /*** Check if a string starts with $ or _ ascii unicode 的区别 charcodeAt是一个字符的 unicode编码, 但是…

Tim Berners-Lee重新分散的新Web SOLID简介

by Arnav Bansal通过Arnav Bansal Tim Berners-Lee重新分散的新Web SOLID简介 (An introduction to SOLID, Tim Berners-Lee’s new, re-decentralized Web) Recently, Prof. Tim Berners-Lee lifted the veil off a project called Solid. I decided to check it out. In thi…

AngularJS2.0 教程系列(一)

Why Angular2 Angular1.x显然非常成功&#xff0c;那么&#xff0c;为什么要剧烈地转向Angular2&#xff1f; 性能的限制 AngularJS当初是提供给设计人员用来快速构建HTML表单的一个内部工具。随着时间的推移&#xff0c;各种特性 被加入进去以适应不同场景下的应用开发。然而由…

Vue组件绑定自定义事件

Vue组件使用v-on绑定自定义事件&#xff1a;   可以分为3步理解&#xff1a;     1.在组件模板中按照正常事件机制绑定事件&#xff1a;       template: <button v-on:click"increment">{{ counter }}</button>,       如上&#xff…

phpstudy本地调试运行TP5的后台源码

本地访问后台步骤&#xff1a; 1.打开 phpstudy 2.点击其它选项菜单 3.点击软件设置 4.点击端口常规设置 5.修改网站根目录为&#xff1a; C:\phpStudy\PHPTutorial\WWW\wxpet_2019\public phpstudy 切换php版本&#xff1a;5.6.27 public目录下的 .htacc…

如何使用TensorFlow Eager执行训练自己的FaceID ConvNet

by Thalles Silva由Thalles Silva Faces are everywhere — from photos and videos on social media websites, to consumer security applications like the iPhone Xs FaceID.人脸无处不在-从社交媒体网站上的照片和视频到iPhone Xs FaceID等消费者安全应用程序。 In this…

jquery判断一个元素是否为某元素的子元素

$(node).click(function(){if($(this).parents(.aa).length > 0){//是aa类下的子节点}else{//不是aa类下的子节点} });在判断点击body空白处隐藏弹出框时用到转载于:https://www.cnblogs.com/qdog/p/7067909.html

Sublime Text 3 (含:配置 C# 编译环境)

Sublime Text 3http://www.sublimetext.com/3http://www.sublimetext.com/3dev1. 关闭自动更新 菜单&#xff1a;Preferences->Settings User&#xff0c;打开User配置文档&#xff0c;在大括号内加入&#xff08;或更改&#xff09;&#xff1a; "update_check&q…

小程序仿安卓动画滑动效果滑动动画效果实现

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 效果图&#xff1a; 源码 var start_clientY; //记录当前滑动开始的值 var end_clientY; //记录当前滑动结束的值 var animation wx.createAnimation({duration: 400 }); //初始化动画var history_dis…

react中使用scss_我如何将CSS模块和SCSS集成到我的React应用程序中

react中使用scssby Max Goh由Max Goh 我如何将CSS模块和SCSS集成到我的React应用程序中 (How I integrated CSS Modules with SCSS into my React application) I recently started on an Isomorphic React project. I wanted to use this opportunity to utilize tools that …

-bash:syntax error near unexpected token '('

在Xshell5中编写int main(int argc,char** argv)时&#xff0c; 出现-bash:syntax error near unexpected token ( &#xff1b; 可是我是按照Linux语句编写的&#xff0c;其他代码没有出错&#xff1b; 检查发现&#xff0c; Xshell5对应的Linux版本是Linux5&#xff0c;在Li…

iOS手机 相册 相机(Picker Write)

把图片写到相册UIImageWriteToSavedPhotosAlbum(<#UIImage *image#>, nil, nil, nil); ————————————————————————————从相册&#xff0c;相机获取图像设置代理《UINavigationControllerDelegate, UIImagePickerControllerDelegate》 #pragm…

php删除指定对象的属性及属性值

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 unset($address[/Api/User/addAddress]); 删除了 address 对象的 /Api/User/addAddress 属性

前端分离的前端开发工具_使我成为前端开发人员工作的工具和资源

前端分离的前端开发工具Learning front-end development can be a bit overwhelming at times. There are so many resources and tools, and so little time. What should you pick? And what should you focus on?有时&#xff0c;学习前端开发可能会有些困难。 资源和工具…

C# 开启及停止进程

1.本篇内容转发自http://www.cnblogs.com/gaoyuchuanIT/articles/2946314.html 2. 首先在程序中引用: System.Diagnostics; 3. 开启进程: /// <summary> /// 开启进程 /// </summary> /// <param name"aProPath&quo…

COJN 0575 800601滑雪

800601滑雪难度级别&#xff1a;B&#xff1b; 运行时间限制&#xff1a;1000ms&#xff1b; 运行空间限制&#xff1a;51200KB&#xff1b; 代码长度限制&#xff1a;2000000B 试题描述Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xf…

JS删除数组指定下标并添加到数组开头

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 代码 let id e.currentTarget.dataset.idlet arrays ;let items this.data.itemsfor (let i 0; i < this.data.items.length; i) {if (id this.data.items[i].id) {arrays items.splice(i, 1)i…

scala akka_如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法

scala akkaby Miguel Lopez由Miguel Lopez 如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法 (How to Dockerise a Scala and Akka HTTP Application — the easy way) Using Docker is a given nowadays. In this tutorial we will how to learn to dockerise our Sca…

Freemarker详细解释

A概念 最经常使用的概念1、 scalars&#xff1a;存储单值字符串&#xff1a;简单文本由单或双引號括起来。数字&#xff1a;直接使用数值。日期&#xff1a;通常从数据模型获得布尔值&#xff1a;true或false&#xff0c;通常在<#if …>标记中使用2、 hashes&#xff1a;…

洛谷P1057 传球游戏(记忆化搜索)

点我进入题目题目大意&#xff1a;n个小孩围一圈传球&#xff0c;每个人可以给左边的人或右边的人传球&#xff0c;1号小孩开始&#xff0c;一共传m次&#xff0c;请问有多少种可能的路径使球回到1号小孩。 输入输出&#xff1a;输入n&#xff0c;m&#xff0c;输出路径的数量。…

微信小程序 自定义导航栏,只保留右上角胶囊按钮

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 navigationStyle 导航栏样式&#xff0c;仅支持以下值&#xff1a;default 默认样式custom 自定义导航栏&#xff0c;只保留右上角胶囊按钮 在 app.json 的 window 加上 "navigationStyle":…

azure多功能成像好用吗_如何使用Azure功能处理高吞吐量消息

azure多功能成像好用吗Authored with Steef-Jan Wiggers, Azure MVP.由Azure MVP Steef-Jan Wiggers撰写。 With Microsoft Azure, customers will push all types of workloads to its services. Workloads are ranging from datasets for Machine Learning purposes to a la…

document.all使用

document.all 一个. document.all它是在页面中的所有元素的集合。例如&#xff1a; document.all(0)一个元素 二. document.all能够推断浏览器是否是IE if(document.all) { alert("is IE!"); } 三. 也能够通过给某个元素设置id属性&#xff08;id…

微信小程序动画无限循环 掉花

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 动画效果 源码 <!-- 动画 --><block wx:if"{{donghua}}"><view classdonghua><image bindtaphua styleleft:{{left1}}px animation"{{animationData1}}" clas…

程序员远程办公_如何从办公室变成远程程序员

程序员远程办公by James Quinlan詹姆斯昆兰(James Quinlan) My name is James, and I’m a Software Engineer at a company called Yesware, based in Boston. Yesware is the fourth job I’ve had in which I’m paid to write code, but it’s the third time now that I’…

从头学起androidlt;AutoCompleteTextView文章提示文本框.十九.gt;

文章提示可以很好的帮助用户输入信息&#xff0c;以方便。在Android它也设置有类似特征&#xff0c;而要实现这个功能需要依靠android.widget.AutoCompleteTextView完毕&#xff0c;此类的继承结构例如以下&#xff1a; java.lang.Object↳ android.view.View↳ android.widget…

微信小程序动态设置 tabBar

微信小程序开发交流qq群 173683895 承接微信小程序开发。扫码加微信。 使用微信提供的API wx.setTabBarItem(Object object) 动态设置 tabBar 某一项的内容 参数 Object object 属性类型默认值必填说明indexnumber 是tabBar 的哪一项&#xff0c;从左边算起textstring 否…