Maven 结合 IDEA 入门实践
一、Maven 基本安装
1. 下载
首先来到 http://maven.apache.org/download.cgi ,直接下载以 -bin.zip 结尾的文件,如图
2. 存储位置
将其解压后,考虑与 jdk 一起放到 C 盘,方便管理:
3. 配置 MVN_HOME 系统环境变量
这一步的配置类似于 JAVA_HOME,其路径值也只需指向文件夹所在位置即可,比如 C:\Program Files\Java\apache-maven-3.3.1,切记不要加 \bin。
4. 配置 path 系统环境变量
基于 MVN_HOME 的配置,将路径引导到 \bin 目录下:
path:%JAVA_HOME%\bin; %MVN_HOME%\bin;
5. 新版本升级
每当有新版本的 Maven 下载到本地时,只需要把 %MVN_HOME% 的路径指向新版本 Maven 的所在物理路径,其他一律不需要变动,这也是设置 MVN_HOME 的意义所在。
最后重启 cmd,运行 mvn -v 就可以检查新版本号了。
二、settings.xml 配置文件
安装 Maven 完毕后,为便于管理一般还可以针对其“依赖包”的存储位置进行指定。
1. 配置 localRepository 节点
确定好依赖包要存储的路径位置,然后修改 localRepository 属性,该路径可自由指定:
<localRepository>D:\Maven-3.3.9\repository</localRepository>
该地址的内容如图:
提醒:如果 Intellij Idea 中自定义了 Maven,务必确保“Local repository”与此处配置的 localRepository 相同,以方便统一管理。
2. 配置镜像 mirror
有时候默认的镜像地址属于国外网站导致访问不畅,所以有必要进行替换。
国外
<mirror> <id>mirrorId</id> <name>Human Readable Name for this Mirror.</name> <url>http://repo1.maven.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror>国内(阿里云镜像:http://maven.aliyun.com/nexus/#welcome)
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
这样,所有的 jar 包依赖项都会从新指定的 url 中下载。
三、与 IDEA 结合
我没有使用 IDEA 自带的 Maven,一方面是因为它的版本偏低,另外该版本与自己安装的 Maven 版本也不一致,容易导致不一致的结果,于是索性就放弃了 IDEA 自带的 Maven。
1. 基础配置
IDEA 中配置 Maven 的位置如图:
指定 Maven home directory 为 E:\Java\apache-maven-3.3.9,即 Maven 所安装的位置。
指定 User settings file 为 E:\Java\apache-maven-3.3.9\conf\settings.xml,同样也指定到 Maven 所安装的位置的 settings.xml 文件。
指定 Local repository 为期望的存储位置,务必确保该地址与 settings.xml 中 localRepository 相同,即都是 D:\Maven-3.3.9\repository
<localRepository>D:\Maven-3.3.9\repository</localRepository>
2. 运行时配置(Runner)
为了在任何时候能应用到这个配置,需要指定配置“For default project”。
- 一劳永逸式配置
设置路径 File->Other Settings->Default Settings,如图:
接着选中 Maven / Runner,设置 VM Options 的值为“-DarchetypeCatalog=internal”:
- 临时配置
另一种配置方式是“即时配置”,也就是每次在创建 artifact 时顺便予以配置:
如上图的 archetypeCatalog=internal,这样在创建相关组件模板时就只基于本地已有的组件来创建,不再因网络延时而导致异常。
archetypeCatalog 的值有三种:
- internal——maven-archetype-plugin内置的
- local——本地的,位置为~/.m2/archetype-catalog.xml
- remote——指向Maven中央仓库的Catalog
通过以上的三步配置,Maven 和 IDEA 的结合使用就比较有条理了,特别强调的是务必要将依赖包的位置进行统一,避免重复下载。
Maven 结合 IDEA 入门实践的更多相关文章
- 分布式学习系列【dubbo入门实践】
分布式学习系列[dubbo入门实践] dubbo架构 组成部分:provider,consumer,registry,monitor: provider,consumer注册,订阅类似于消息队列的注册 ...
- 这是一次 docker 入门实践
前言 其实接触 docker 也有一段时间了,但是一直没有做下总结,现在网上关于 docker 的介绍也有很多了,本着好记性不如烂笔头的原则,还是自己再记录一波吧. 实现目标 安装 docker ce ...
- 转载maven安装,配置,入门
转载:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 本书代码下载 大家可以从我的网站下载本书的代码:http://ww ...
- Spring Boot WebFlux 快速入门实践
02:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ( ...
- Spring Boot WebFlux-01——WebFlux 快速入门实践
第01课:WebFlux 快速入门实践 Spring Boot 2.0 spring.io 官网有句醒目的话是: BUILD ANYTHING WITH SPRING BOOT Spring Boot ...
- sass、less和stylus的安装使用和入门实践
刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...
- 学习笔记——Maven实战(四)基于Maven的持续集成实践
Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ...
- Django入门实践(三)
Django入门实践(三) Django简单应用 前面简单示例说明了views和Template的工作过程,但是Django最核心的是App,涉及到App则会和Model(数据库)打交道.下面举的例子 ...
- Django入门实践(二)
Django入门实践(二) Django模板简单实例 上篇中将html写在了views中,这种混合方式(指Template和views混在一起)不适合大型开发,而且代码不易管理和维护,下面就用Djan ...
随机推荐
- 笔记2 linux多线程 读写锁
//read write lock #include<stdio.h> #include<unistd.h> #include<pthread.h> struct ...
- 在centos6,7 上编译安装内核
小编以前写过一篇软件的源码编译安装,今天小编再给大家带来一篇内核的编译安装. 今天,就以centos7 编译安装最新版本4.13.2 内核为例,给大家详解.编译安装之前,检查一下自己的磁盘空间 ...
- 过滤器复用代码【中文乱码、HTML转义】
中文乱码 public class CharacterEncodingFilter implements Filter { public void doFilter(ServletRequest re ...
- activiti07- Task
任务 用户任务: 用户任务,用来对那些需要人参与完成的工作进行建模.当流程执行到这样的用户任务时,会在被分配到该任务的用户或用户组的任务列表中创建新的任务. 用户任务中可以包含描述.事实上,任何BPM ...
- SDP开发
1.1 前言 在企业间的商业竞争越来越激烈的今天,如何快速实现客户需求,如果快速方开发.修改.更新系统功能,如何降低软件研发的成本等等,在此目标基础上研发了软件快速开发(SDP)工具.通过平台设计器快 ...
- <c:forEach>+<c:if>
<c:forEach>:用来做循环<c:if>:相当于if语句用于判断执行,如果表达式的值为 true 则执行其主体内容. <c:forEach var="每个 ...
- 基于pytorch实现HighWay Networks之Train Deep Networks
(一)Highway Networks 与 Deep Networks 的关系 理论实践表明神经网络的深度是至关重要的,深层神经网络在很多方面都已经取得了很好的效果,例如,在1000-class Im ...
- 语音传输之RTP/RTCP/UDP及软件实现关键点
语音通信是实时通信,一定要保证实时性,不然用户体验会很糟糕.IETF设计了RTP来承载语音等实时性要求很高的数据,同时设计了RTCP来保证服务质量(RTP不保证服务质量).在传输层,一般选用UDP而不 ...
- JAVA设计模式总结之六大设计原则
从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇:第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语.于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇 ...
- 如何用Python脚本从文件读取数据?
最近自学Python的进度比较慢,工作之余断断续续的看着效率比较低,看来还是要狠下心来每天进步一点点. 还记得前段时间陈大猫提了一口"先实现用python读取本地文件",碰巧今天看 ...