Maven一些总结
1.Maven的安装和配置
从Maven的官网上下载Maven的安装包,http://maven.apache.org/download.html。
将其解压在你想安放的目录下。
然后配置Maven的环境变量(M2_HOME),比如说我的Maven安装在D:\Maven\apache-maven-3.0.3下,那么M2_HOME=D:\Maven\apache-maven-3.0.3。如果想在任何目录下使用maven命令,就将M2_HOME目录下的bin目录加入到加入到系统环境变量Path中。
使用mvn -v 就可以看到当前maven的版本信息,表明安装成功。
注:安装maven前必须确定自己的电脑已经安装了JDK,并且java环境已经配置好了。
2.设置HTTP代理
有些时候处于安全考虑,自己的主机不能直接访问外网的中央仓库,而是指定一个经过安全认证的代理服务器,通过该代理服务器来访问中央仓库。
如何配置HTTP代理?
首先在安装了Maven后,M2_HOME/conf目录下放置了Maven的配置信息(setting.xml),我们可以通过修改该文件来设置代理。但是,如果直接在该文件上修改,那么影响将是全局的,而且不利于以后的升级。所以我们将该文件复制一份,放到~/.m2下,那么该文件将会覆盖M2_HOME/conf下的setting.xml,而且只对当前用户有效。这样每个用户都可以根据自己的喜好和需求来配置适合自己的Maven。具体如何在setting.xml中配置HTTP代理,代码入下:
<proxies>
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>...</host>
<port>...</port>
<useranme>...</useranme>
<password>...</password>
<nonProxyHosts>...</nonProxyHosts>
</proxy>
</proxies>
<active>的值为true,表示该代理被激活,<protocol>表示代理协议,当然是http了,<host>表示代理的主机地址,<port>代表代理主机的端口,<useranme>,<password>
用来进行安全认证, <nonProxyHosts>代表哪些主机不需要进行代理。
注:当在做项目使用Maven的时候,必定要下载很多jar包和插件放在本地的仓库中,安装好Mavaen后,本地仓库会有一个默认的存放位置。当然也可以通过配置setting.xml文件来改变。比如我自己的配置,将仓库放在D:/dev/repository下:
<localRepository>D:/dev/repository</localRepository>
3.pom文件编写的一些细节
①在编写pom文件的时候,相同的版本号或其他一些字符串会重复出现,那么我们可以将重复的字符串抽取出来,进行定义,然后在需要使用的地方进行引用。如下:
<properties>
<springframework.version>2.5.6</springframework.version>
</properties>
.....
<dependency>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>${springframework.version}</version>
</dependency>
....
4.聊聊Maven的仓库机制
我们不必每做一个项目就将其所依赖的jar包和插件都引入到项目中,我们可以定义依赖,指定在仓库中的位置。仓库包含了很多的插件和jar包,分为本地仓库和远程仓库,当定义一个依赖的时候,系统会首先根据坐标在本地仓库中寻找jar包,如果本地仓库中有所需要的jar包和插件,那么就不会去访问远程仓库,如果没有就会去访问远程仓库,并且把相应的jar包和插件下载到本地仓库中去。
注:安装好Maven以后,如果不执行任何Maven命令,本地仓库目录是不存在的,当用户输入第一条Maven命令之后,Maven才会创建本地仓库。
Maven安装好后,会有一个默认的远程仓库,即中央仓库,配置信息写在Maven的超级POM文件中。当然除了中央仓库,还可以配置其他远程仓库。即当在中央仓库中找不到jar包的时候回去其他远程仓库中寻找。配置代码如下:
<repositories>
<repository>
<id>public</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
在组织内部,有一个Maven仓库服务器,该服务器为每个项目都提供独立的Maven仓库,为了防止非法的仓库访问,管理员为每个仓库提供了一组用户名和密码。为了能让Maven访问仓库内容,就需要配置认证信息。配置代码如下:
<server>
<id>releases</id>
<username>deployment</username>
<password>deployment123</password>
</server>
仓库的镜像
如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何可以从Y获得的构件,都能从它的镜像中获取。
<mirrors>
<mirror>
<id>mirrorId</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
</mirror>
</mirrors>
上述代码配置了一个中央仓库的镜像仓库mirrorId。其他配置项与一个普通仓库是相同的。
5.生命周期和插件
在有关Maven的日常应用中,命令行的输入往往就对用了生命周期,如mvn package就表示执行生命周期阶段package。
Maven有三套生命周期,clean,default,site.
三套生命周期是相互独立的,用户可以仅仅调用生命周期的某一个阶段,而不会对其他周期产生影响。
每个生命周期包含一些阶段,并且这些阶段是有顺序的,后面的阶段依赖前面的阶段。以clean生命周期为例,它有三个阶段,pre-clean,clean,post-clean。当用户调用pre-clean的时候,只有pre-clean阶段执行,当用户调用clean的时候,那么就会执行 从命令行执行maven任务的主要方式就是调用maven的生命周期阶段: |
Maven一些总结的更多相关文章
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- 理解Maven中的SNAPSHOT版本和正式版本
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- 安装eclipse的maven插件
我们团队用maven来管理项目需要的库文件,其实以前都没听过maven,第一次接触这个,师兄要我直接去装下这个,开始以为还挺简单的,没想到中间遇到了一些小麻烦,现在把我成功安装maven的过程分享下, ...
- MAVEN学习-第一个Maven项目的构建
MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...
- Maven 代理设置
在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies> <!-- proxy | Specificatio ...
- spring maven pom.xml设置
spring pom.xml设置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- maven依赖查询地址
http://search.maven.org/#search%7Cga%7C1%7C
- maven 中snapshot版本和release版本的区别
maven中的仓库分为两种,snapshot快照仓库和release发布仓库.snapshot快照仓库用于保存开发过程中的不稳定版本,release正式仓库则是用来保存稳定的发行版本.定义一个组件/模 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
随机推荐
- 关于sql查询结果集的链接
开通博客有一段时间了,第一次博文.本身是个理工科的,没啥文采,就想着把平时遇到的问题记录下来,防止自己以后忘了还要去翻找. 今天看到同事写的代码,查询两张表里的数据,结果集类型是一样的.写了两条查询, ...
- JZOJ 5776. 【NOIP2008模拟】小x游世界树
5776. [NOIP2008模拟]小x游世界树 (File IO): input:yggdrasil.in output:yggdrasil.out Time Limits: 1500 ms Me ...
- 第2章 CentOS7集群环境配置
目录 2.1 关闭防火墙 2.2 设置固定IP 2.3 修改主机名 2.4 添加用户 2.5 修改用户权限 2.6 新建目录 2.7 安装JDK 1.卸载系统自带的JDK 2.安装JDK 2.8 克隆 ...
- Tame Me【驯服我】
Tame Me “Good morning,” said the fox. 早上好,狐狸说 “Good morming,” the little prince responded politely,a ...
- Xenia and Bit Operations CodeForces - 339D
Xenia and Bit Operations CodeForces - 339D Xenia the beginner programmer has a sequence a, consistin ...
- A1027 Colors in Mars (20)(20 分)
A1027 Colors in Mars (20)(20 分) People in Mars represent the colors in their computers in a similar ...
- android静默安装和智能安装(转)
Android 静默安装和智能安装的实现方法 http://blog.csdn.net/fuchaosz/article/details/51852442 Android静默安装实现方案,仿360手机 ...
- Go语言之反射(三)
结构体转JSON JSON格式是一种用途广泛的对象文本格式.在Go语言中,结构体可以通过系统提供的json.Marshal()函数进行序列化.为了演示怎么样通过反射获取结构体成员以及各种值的过程,下面 ...
- Hive将SQL转化为MapReduce的过程
Hive将SQL转化为MapReduce的过程: Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象语法树AST Tree 遍历AST Tree,抽象出查询的基本组成单元Qu ...
- MongoDB快速入门学习笔记1 windows安装MongoDB
1.安装MongoDB 从MongoDB官网上下载MongoDB,我下载的版本是64位的3.2.6.下载完以后直接安装,我的安装目录是D:\work\MongoDB. 2.配置MongoDB的环境变量 ...