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安装和作用的更多相关文章

  1. Java技术学习路线

    转载 作者:David 链接:https://www.zhihu.com/question/25255189/answer/86898400来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  2. Java研发技术学习路线

    Java研发技术成长路线 作为一名Java研发者,深感Java技术的学习是一个漫长过程,从一名Java菜鸟开始,加之持之以恒的耐心和脚踏实地的精神,不间断理论的学习,不停止技术实践,终成为一名技术佼佼 ...

  3. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  4. Java+Bigdata学习路线

    Java+Bigdata学习路线 2019-05-28 07:04:33 @Auther:MrZhangxd STAGE 第一阶段:JAVA基础 |-第一阶段:JAVA基础 | |-可掌握的核心能力 ...

  5. Java入门学习路线目录索引

    原创 Java入门学习路线目录索引 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/One_ ...

  6. 一位资深程序员大牛推荐的Java技术学习路线图

    Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python. 可以说,Java是现阶段中国互联网公司中,覆盖 ...

  7. Java新手学习路线

      转自网络     分享个JAVA学习路线[新手可以参考看下]觉得不好的,大家可以提出来我补充. 第一阶段 技术名称 技术内容 J2SE(java基础部分) java开发前奏 计算机基本原理,Jav ...

  8. 想了解Java后端学习路线?你只需要这一张图!

    前言 学习路线图往往是学习一样技术的入门指南.网上搜到的Java学习路线图也是一抓一大把. 今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点.所谓不求最好,但求最全,学习Java后端的同学 ...

  9. java数据库学习路线和必学知识点!

    java数据库必学知识点! 分享一下数据库的学习路线和必学的知识点! 掌握mysql,Oracle在各个平台上的安装及使用 Mysql数据库基础 mysql概述.优点.运行原理及内存结构 mysql数 ...

随机推荐

  1. 20170725 Python 必须使用的Url编码

    -- 1 原因:在进行API 调用传参时,如果出现了和区分参数标识一样的特殊字符,那么就需要编码来作用 或者,传递的参数有敏感数据. 我的目的: Python开发的接口,C#调用传递参数 先用C# 进 ...

  2. 006-docker-安装-nginx

    1.搜索镜像 docker search nginx 2.拉取合适镜像 docker pull nginx docker images 3.使用镜像 docker run -p 8080:80 --n ...

  3. 云计算概述及Centos7下安装kvm虚拟机

    云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源 云计算到底是什么? 按定义:云计算指的是一种使用模式,是基 ...

  4. ionic 版本内更新问题汇总

    1.签名不一致导致的更新失败 2.解析软件包出现问题 3.当文件下载完.在android 8.0中不能打开apk包的问题 解决方案:在config.xml中添加: <platform name= ...

  5. DLNg[结构化ML项目]第二周迁移学习+多任务学习

    1.迁移学习 比如要训练一个放射科图片识别系统,但是图片非常少,那么可以先在有大量其他图片的训练集上进行训练,比如猫狗植物等的图片,这样训练好模型之后就可以转移到放射科图片上,模型已经从其他图片中学习 ...

  6. 前端MD5加密【单向加密】

    密码存储的方式: 密码该如何存储呢?按照安全性由低到高,有这样几种选择: 1.密码名文直接存储在系统中 2.密码经过对称加密后再存储 3.密码经过非对称加密后再存储 步骤: 1.用户端:用户提交用户名 ...

  7. jenkins 多选参数构建配置

    参考:https://blog.csdn.net/e295166319/article/details/54017231 场景: 有的时候,参数基本都是那几个,但是不变,但是参数名字比较长,不好记忆, ...

  8. 从现在开始,这是一个IT博客。

    从现在开始,删除以前的点点滴滴,一心做个IT人.

  9. Graphviz

    不能显示中文,我的处理方法是: node [shape = box,fontname =“Microsoft YaHei”] edge [fontname =“Microsoft YaHei”] 似乎 ...

  10. Python Anaconda使用

    选择Python 科学计算器发行版 Python用于科学计算的一些常用工具和库 IPython-增强的交互环境:支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函 ...