暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Maven的安装和配置

老李的Java学习日记 2020-04-23
6863


一:下载Maven

安装Maven

  1. 直接解压

  2. 要配置环境变量

Maven目录介绍

目录名功能说明
binmaven可执行文件所在目录其中mvn.cmd就是maven的执行文件
bootmaven的支持包,第三方类加载器。ClassLoader,把字节码文件加载到内存中生成类对象
conf配置文件目录,settings.xml 这是maven配置文件
libmaven也是用Java写的,运行所需要jar包

配置环境变量

1)  我的电脑右键,选择属性

2)  左上角选择"高级系统设置"

3)     选择高级下面的"环境变量"的按钮

4)     添加Maven的主目录为你的安装目录,设置Maven的可执行文件访问路径为Maven主目录的bin目录下

MAVEN_HOME=e:\apache-maven-3.3.9

Path=%MAVEN_HOME%\bin




测试安装好的Maven

打开cmd本地控制台,输入

mvn –v 或 mvn -version

出现如下提示信息表示配置成功:



Maven仓库的概念和配置

什么是POM

POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。按面向对象的思想来管理整个项目。

  1. 它定义了项目的基本信息

  2. 描述项目如何构建

  3. 声明项目的依赖包

  4. 打包运行的方式

    它是按面向对象的思想来管理项目的,每个maven工程中都有一个pom.xml配置文件。

Maven的仓库概念

Maven将所有的jar包放到仓库里面,我们通过在pom.xml文件中描述一小段文字就可以引用仓库里的jar包到项目中。

三种仓库


访问仓库的过程

配置本地仓库

1)  将软件文件夹中的Repository解压,可以放在任意的位置,这是我自己的本地仓库。

e:\repository

2)  配置本地仓库,修改maven的安装目录中conf/settings.xml文件,在53行配置本地仓库为上面的目录。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
 <localRepository>e:\repository</localRepository>
</settings>

3)  可选配置,修改settings.xml文件,159行指定中央仓库的镜像。这里使用的是阿里云的中央仓库,速度比官方的快很多。

<mirror>  
<id>nexus-aliyun</id>  
<mirrorOf>central</mirrorOf>    
<name>Nexus aliyun</name>  
<url>http://maven.aliyun.com/nexus/content/groups/public</url>  
</mirror>

4) 可选配置,修改maven使用JDK的版本,200行。如果不配置就需要在idea中配置。maven默认使用的是JDK1.5的版本,这里使用1.8的版本。

<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>



Maven的坐标

Maven坐标的概念

Maven的核心作用就是管理项目的依赖,引入我们所需的各种jar包。为了能自动的解析任何一个Java构件,Maven必须将这些Jar包或者其他资源进行唯一标识,就是Maven的坐标。

Maven坐标定义了一组元素,它们可以用来唯一标识一个项目、一个依赖、一个插件


坐标的元素定义  

元素名称说明
groupId公司或组织名,反过域名。代表仓库中第1或第2级目录
artifactId项目名或模块名,代表仓库中第二级目录
version版本,代表仓库中第三级目录如果有SNAPSHOT单词,表示这是正在开发的项目

坐标的示例

例如:要引入junit的jar包,只需要在pom.xml配置文件中配置引入junit的坐标即可:

可以通过官方的中央仓库地址:http://repo1.maven.org/maven2/

通过以上三层结构就可以在仓库里面定位到一个jar包,坐标的每个组成部分都对应仓库里面的一级目录结构。如果之前已经访问过,则在本地仓库中也可以找到。

有一些groupId项目名字对应两级目录,而artifactId和version元素都对应一级目录




二:IDEA中配置Maven环境

IDEA绑定本地Maven仓库

1)     选择File-->Other Settings-->Default Settings

2)     选择Build,Execution,Deployment-->Build Tools-->Maven

3)   配置以下三项信息:Maven的主目录,配置文件settings.xml和本地仓库repository目录

4)   选择Build,Execution,Deployment-->Build Tools -->Maven-->Runner,设置Maven启动虚拟机的选项:VMOption,设置所有资源先从本地仓库查找,如果本地仓库中没有才去互联网找。

-DarchetypeCatalog=internal

5)   可选,如果汉字没有乱码则不用设置,Maven控制台输出中文如果出现乱码,则进行如下设置。

VMoptions: -Dfile.encoding=GBK  或者 -Dfile.encoding=UTF-8

VMOptions配置多个参数需要使用空格隔开

演示:使用Maven骨架创建JavaWeb工程

Maven对JavaWeb工程目录结构的要求

使用骨架创建JavaWeb工程

1)   选择Maven骨架时,要选择maven-archetype-webapp,注:不要选成cocoon-22-archetype-webapp。

2)   将模块添加到哪个项目,指定其父模块,都设置为none。指定项目的坐标。

3)  确认Web的骨架信息,不用修改,直接选择下一步。

4)  指定模块名和保存模块所在的目录

5)  点finish按钮,运行Maven构建web项目,这时要连接网络,一段时间后显示Maven exeution finished。

6)  默认骨架创建好的JavaWeb工程如下,选右边的Maven Projects中的第2个项目刷新。左边的webapp图标上出现蓝色小点。表示这是Web页面的根目录,类似于以前的web目录。

手动完善JavaWeb的目录结构

1)     手动在main目录下创建java目录和resources,如图

2)     在src目录下,与main目录同级,创建test目录,并在test目录下创建java文件夹和resources,如图

3)     在右边的Maven Projects刷新,左边的工程各个文件夹的图标都发生变化

4)     最终目录结构,如图红色方框中的文件夹都是手动创建的。



maven的生命周期:clean、test、compile

Maven强大的一个重要的原因是它有一个十分完善的生命周期模型

什么是生命周期:项目从开发的开始到项目的开发结束,最终部署到服务器的整个过程

关于plugin配置的说明

Maven管理项目生命周期过程都是基于插件完成的,如果在pom.xml中配置了plugin插件,则使用配置的插件版本。如果没有配置,则使用Maven默认的插件版本,默认的插件版本更低一些。

Maven生命周期命令

以下所有的操作针对第1个通过向导创建的Web项目

clean命令

命令作用

清除target目录,将执行过程中生成的字节码文件等删除

操作演示

1)     选择day39_02_Web项目,可以看到target文件夹

           


2)     双击右边的Maven Projects-->Lifecycle-->clean执行清除操作

           


3)     操作结果如下

           


4)     可以看到删除了target目录。

           


5)     也可以选择Execute Maven Goal选择clean命令执行,注意选择正确的路径。这种方式主要用于命令带参数的情况。

           


test命令

命令作用

执行test目录下所有的测试类和测试方式

操作演示

1)     确认JUnit已经导入

<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.11</version>
   <scope>test</scope>
</dependency>

2)     在src/test/java下创建测试类AppTest

package com.itheima;

import org.junit.Test;

public class TestOne {

   @Test
   public void test1() {
       System.out.println("测试1");
  }

   @Test
   public void test2() {
       System.out.println("测试2");
  }
}

3)     执行test命令测试,双击或输入运行的test命令

           


4)     在Run查看测试结果

           

  • 如果有多个测试类,每个测试类中有多个方法,每个测试方法都会执行。


complie命令

命令作用

编译main目录下的源代码,生成字节码文件


操作演示

1)     选择day39_02_Web项目,删除target中classes目录下和test-classes目录下所有的文件,不删除目录。

   


2)     双击compile命令执行

           

3)     在Run下查看结果

           


4)     只编译了java中的代码,test-classes中的代码没有编译。

   

小结

  1. clean:清除target目录下文件

  2. test:执行test目录下所有的类和测试方法

  3. compile:编译main目录下所有的源代码



maven的生命周期:package,install

package命令

命令作用

将整个项目打包成war或jar包

如果是web工程,打成war包,如果是java工程打成jar包

操作演示

1)     确认在Web项目中已经设置了打包的方式

<packaging>war</packaging>

2)     双击package或者输入命令执行

         


3)     在Run查看日志输出结果。注:每次打包前还会再次执行所有test命令

           


4)     在target或windows目录下都可以看到生成的war文件

           

注:如果WEB-INF/web.xml文件不存在,则打包失败。


install命令

命令作用

将打包好的war或jar包放置到本地仓库中

操作演示

1)     双击install或者输入命令,执行安装命令

           


2)     执行以后在Run窗口看到如下信息

           


3)     安装完毕后,在本地仓库中可以找到当前项目创建的war包信息

           


4)     可以将war复制到tomcat/webapps目录下

   


5)     通过浏览器访问

           

命令行下执行Maven命令

操作演示:

1)     打开命令提示符窗口

 


2)     运行命令之前,必须进入项目所在的根目录,可以看到pom.xml所在的目录

   


3)     执行Maven的清除命令:mvn clean

   


4)     查看执行结果,发现target文件夹已经没有

 

生命周期的命令

命令说明
mvn clean删除target目录
mvn compile编译main目录下文件
mvn test执行test目录下类和方法
mvn package打包war或jar包
mvn install将打包好的jar或war包复制到本地仓库中






文章转载自老李的Java学习日记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论