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包和插件


       need-to-insert-img

  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不会检索

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 1.Maven介绍 Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。主要用来...
    蒲公英爱上阅读 1,084评论 0 0
  • 前言 在Java项目开发中,项目的编译、测试、打包等是比较繁琐的,属于重复劳动的工作,浪费人力和时间成本。以往开发...
    JourWon阅读 1,114评论 0 1
  • Maven概述 Maven定义Maven是一个项目管理和整合,统一管理jar包的工具;Maven为开发者提供了一套...
    THQ的简书阅读 792评论 0 0
  • 前言 在 Java EE 开发中,我们使用 Maven 构建工具主要来管理项目的第三方库的依赖,以及公司内部其他项...
    闻人的技术博客阅读 1,342评论 0 20
  • 有些人25岁就已经死了,75岁才埋葬。----富兰克林 今天收到一条作者回复通知,颇感意外。 这是之前无意间看到的...
    茶靡姑娘阅读 386评论 0 1