Java技术学习路线笔记:Maven安装和作用
Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。主要用来管理java项目,进行依赖管理(jar包管理,能自动分析项目所需的依赖软件包,并到Maven仓库区下载)和项目构建(项目打包和部署)。此外还能分块开发,提高开发效率。
本文将从以下三个方面写起:
1、Maven的作用
2、Maven的安装配置
3、IDEA配置Maven
1、Maven的作用,为什么要使用Maven
(1)创建项目,自动关联和下载依赖的jar包。
(2)升级框架的版本。升级某个框架的版本,但却不知道与它相关联的哪几个jar也需要跟着升级,和升级到哪个版本。
(3)自动部署。用Maven只需一个命令,就可以把项目自动部署到远程服务器上。
(4)项目编译打包导出。这个随意一个IDE都能做到,所以如果要Maven做这件事,可能的场景,就是做没有装IDE的环境里,比如在服务器端Linux环境下。
2、Maven的安装配置
1、下载maven 的地址:http://maven.apache.org/download.cgi
2、解压,然后再“我的电脑”--右键--“属性”--“高级系统设置”--“环境变量”中添加如下信息:
a、新增变量MAVEN_HOME的值为Maven的安装文件夹
b、在PATH变量中添加:%MAVEN_HOME%\bin
3、验证配置是否成功,打开cmd,输入:mvn -version
Maven配置文件(settings.xml)具体说明
1.localRepository:设置本地仓库:
<localRepository>C:\software\repository</localRepository>
2.pluginGroups:插件组合
3.proxies:代理
4.servers服务器(其中username和password是私服的用户名和密码,后续配置私服说明)
<server>
<id>user-releases</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>user-snapshots</id>
<username>admin</username>
<password>wangwujuan</password>
</server>
5.mirrors:镜像路径
<!-- 阿里镜像 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
6.profiles:服务器配置
<!--服务器的配置-->
<profile>
<id>nexusProfile</id>
<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
<pluginRepository>
<!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
<!-- java编译插件,配jdk的编译版本-->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
7.activeProfiles:激活私服
<activeProfiles>
<activeProfile>nexusProfile</activeProfile>
</activeProfiles>
Maven仓库说明
存储jar的仓库(3种仓库)
1.本地仓库:存储在本地磁盘,默认在系统盘c盘 用户名/.m2/xx
通过settings.xml 更改本地仓库localRepository
2.远程仓库:一般都使用国内镜像或者公司自己搭建私服. 一般用Nexus
目的:加快下载速度
3.Maven(中央)仓库:Maven团队维护的jar包仓库 http://repo1.maven.org/maven2/
一般用这个查POM:http://mvnrepository.com/
检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库
Maven管理项目周期
1. Clean:项目构建前的清理操作
2. Default: 核心生命周期核心过程:编译,运行,打包等等
3. Site:发布站点,生成报告等等,
3、IDEA配置Maven
IDEA内部集成了Maven,也可以配置成自己安装的Maven
File ----> Settings ----> 找到Maven,配置Maven home directory
创建Maven项目
File ----> New ----> Project ----> Maven
勾选Create from archetype
选择maven-archetype-webapp
点击Next
输入GroupId、ArtifactId点击Next
选择Maven的版本
输入项目名称和目录,点击Finish
创建项目后,点击Import Changes按钮,会下载需要的jar包和插件
Maven项目说明
src/main/java:存放项目的.java文件
src/main/resources:存放项目资源文件。如何Spring,Hibernate配置文件
src/test/java:存放所有测试的.java文件.如Junit测试类
pom.xml(maven项目核心配置文件)
pom.xml默认内容介绍:
<!-- maven中model的版本号 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司名称或组织名称或者个人名称 -->
<groupId>com.sky</groupId>
<!--项目名称 -->
<artifactId>FirstMaven</artifactId>
<!-- 版本号 -->
<version>1.0</version>
<!-- 打包方式 :项目类型
POM:MAVEN项目,常用在继承和聚合上
JAR:JAVASE项目,没有网页,跟服务器没关系
WAR:JAVAEE项目,跟服务器没关系-->
<packaging>war</packaging>
Maven工程添加依赖
推荐网站:http://mvnrepository.com/
示例:
<dependencies>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
</dependencies>
添加到项目的pom文件内容说明(切换pom.xml到Dependencies目录下):
type:类型
取值说明:
jar:jar包
Scope:声明jar包的存活时间
取值说明:
1、provided:编译和测试时需要
2、compile:编译、测试、运行、打包需要
3、runtime:测试、运行、打包需要
4、test:测试
5、system:编译和测试时需要,显示引用,Maven不会检索
Java技术学习路线笔记:Maven安装和作用的更多相关文章
- Java技术学习路线
转载 作者:David 链接:https://www.zhihu.com/question/25255189/answer/86898400来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- Java研发技术学习路线
Java研发技术成长路线 作为一名Java研发者,深感Java技术的学习是一个漫长过程,从一名Java菜鸟开始,加之持之以恒的耐心和脚踏实地的精神,不间断理论的学习,不停止技术实践,终成为一名技术佼佼 ...
- Java Web 学习路线
实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...
- Java+Bigdata学习路线
Java+Bigdata学习路线 2019-05-28 07:04:33 @Auther:MrZhangxd STAGE 第一阶段:JAVA基础 |-第一阶段:JAVA基础 | |-可掌握的核心能力 ...
- Java入门学习路线目录索引
原创 Java入门学习路线目录索引 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/One_ ...
- 一位资深程序员大牛推荐的Java技术学习路线图
Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python. 可以说,Java是现阶段中国互联网公司中,覆盖 ...
- Java新手学习路线
转自网络 分享个JAVA学习路线[新手可以参考看下]觉得不好的,大家可以提出来我补充. 第一阶段 技术名称 技术内容 J2SE(java基础部分) java开发前奏 计算机基本原理,Jav ...
- 想了解Java后端学习路线?你只需要这一张图!
前言 学习路线图往往是学习一样技术的入门指南.网上搜到的Java学习路线图也是一抓一大把. 今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点.所谓不求最好,但求最全,学习Java后端的同学 ...
- java数据库学习路线和必学知识点!
java数据库必学知识点! 分享一下数据库的学习路线和必学的知识点! 掌握mysql,Oracle在各个平台上的安装及使用 Mysql数据库基础 mysql概述.优点.运行原理及内存结构 mysql数 ...
随机推荐
- Java基础知识(JAVA集合框架之List与Set)
List和Set概述数组必须存放同一种元素.StringBuffer必须转换成字符串才能使用,如果想拿出单独的一个元素几乎不可能.数据有很多使用对象存,对象有很多,使用集合存. 集合容器因为内部的数据 ...
- 数字转换大写人民币的delphi实现
function TForm1.changeRmb(const strRmb:string):string; var txt,strhighlevel:string; i,n,m,ilen,ipos: ...
- HTML5(Canvas Vedio Audio 拖动)
1.Canvas (在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字) HTML5 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. 标签只是图形 ...
- vue-3.0创建项目
.npm install --global @vue/cli .npm install -g @vue/cli-init .vue init webpack my-project
- php5.6+Redis+Windows7安装 (phpstudy)
Windows下为PHP安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本. 2.下载php_igbinary-2.0.1-7.0-ts-vc14-x64.z ...
- [LeetCode] 100. Same Tree_Easy tag: DFS
Given two binary trees, write a function to check if they are the same or not. Two binary trees are ...
- [转]记解决一次“HTTP Error 400. The request URL is invalid”的错误
今天将图片服务切到使用了cdn的机器上面去,然后就部分图片报如下图错误“HTTP Error 400. The request URL is invalid” 看到这种错误信息,一般的开发者心中可能会 ...
- kdevelp 导入makefile工程
比如upx工程,将upx/src/makefile中makefile改为makefile.am,自用kdevelop导入工程找到makefile.am,生成工程后去掉.am,这样就可以像vs一样调试程 ...
- shell基础:位置参数变量
位置参数名称,作用不变.变得是传入参数. 抽象问题,大多为年长资格老师少数年轻老师,故而问的技术细节少,抽象理论知识多,比如什么是软件工程,问什么会有软件工程.有事注重的是品质,有的注重出身. 每种都 ...
- 网站的title添加图片
将图片作为ico格式,大小设置为16 * 16px左右,太大显示不完整, 命名需为"favicon.ico", 命名需为"favicon.ico", 命名需为& ...