Maven基础

一、功能和优点

(一)功能

1.项目构建

2.依赖管理

jar包管理(类型管理、版本管理)

二、安装与配置

(一)下载与安装

1.下载

百度网盘CSDN4文件夹下。

官方地址:

2.安装

解压即可使用(解压路径避免中文、空格)。

配置环境变量:前提要有Java环境(不会配置的首页找Java环境变量配置文章)。

(1)Path:maven解压路径bin包位置。

(2)检测:cmd-->java -version 查看

(3)maven解压路径conf包setting文件:profiles-->profil中jdk解注,版本修改为1.8

(二)目录结构

maventest

|--src

|--      |--main

|--      |--      |--java      --项目的源代码所在目录

                                   com.zhang.entity

                                   com.zhang.dao

|--      |--      |--resources  --项目的资源文件所在目录

|--      |--      |--webapp  --如果是web项目,则该目录是web应用源代码的目录

|--      |--      |--      |-- WEB-INF

|--      |--      |--      |--       |--  web.xml

|--      |-- test

|--      |--      |--java  --测试代码所在目录,入junit测试类

                                com.zhang.dao.test

|--      |--      |--resources  --测试相关的资源文件所在目录

|-- target  --项目构建的输出文件,如.class、.jar、.war文件(不需要创建,会自动生成)

|-- pom.xml   --Maven项目核心配置文件,项目的描述文件

(三)Maven仓库

1.分类

本地仓库:本地仓库相当于一个缓存,在电脑上是一个文件夹,我们可以设置这个文件夹的路径(具体怎么设置会在下面的配置体现),工程第一次需要某种jar包时,会从远程仓库(互联网)下载并保存到本地仓库中(在程序员的电脑上),当第二次使用时,不需要去远程仓库下载,会先去本地仓库中找,如果找不到才会去远程仓库上下载。
默认情况下。每个用户在自己的用户目录下都有一个路径名为.m2/respositoryl的仓库目录。

maven解压路径conf包setting文件:配置本地仓库解注,路径修改为自己的仓库位置:repository

远程仓库:中央仓库(Maven官方维护)和私服(局域网架设的仓库)。

配置远程仓库镜像:maven解压路径conf包setting文件

<!--配置阿里云镜像-->
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://Maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorof>*</mirrorof>
</mirror>
<!--其中各个标签的含义是:
id:当前镜像的准一标识
mirrorof :将哪个远程仓库当做中央仓库镜像,中央仓库的id是central,所以将阿里云的Maven仓库
设为中央仓库镜像时,其值必须设置为central
name:为当前的中央仓库镜像起一个名字,便于开发者阅读
url:阿里云Maven仓库的地址-->

2.核心文件pom.xml

<project xmlns="http://Maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://Maven.apache.org/POM/4.0.0
         http: /Maven.apache.org/xsd/Maven-4.0.0.xsd">
<! -- Maven模型的版本―->
<modelversion>4.0.0</modelVersion>
<!--公司或者组织的准一标志,并且配置时生成的路径也是由此生成,如com.companyname.project-group, Maven会将该项目打成的jar包放本地路径:com/companyname/project-group -->
<groupId>com.kkb.Maven</groupId>
<!--项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的--><artifactId>Helloworld</artifactId>
<!--当前项目版本号:同一个项目开发过程中可以发布多个版本,此处标示0.0.1版-->
<!--当前项目版本号:每个工程发布后可以发布多个版本,依赖时调取不同的版本,使用不同的版本号
当前项目版本号,snapshot为快照版本即非正式版本,release为正式发布版本
-->
<version>0.0.1-snapshot</version>
<!--打包类型,一般有jar、war、pom等-->
<packaging>jar</packaging>
<!--名称:可省略,常用于Maven生成的文档。-->
<name>Hello</name>
<!--项目描述:可省略,常用于Maven生成的文档-->
<description > </description>
<!--项目依赖构件配置,配置项目依赖构件的坐标-->
<dependencies>
<!--依赖设置,可以有多个dependency节点-->
     <dependency>
       <!--依赖组织名称-->
       <groupId>junit</groupId>
       <!--依赖项目名称-->
       <artifactId>junit</ artifactId>
       <!--依赖版本名称-->
       <version>4.12</version>
       <! --依赖范围:test包下依赖该设嚣-->
       <scope-test</scope>
     </dependency>
</dependencies>
<!--项目构建配置,配置编译、运行插件等。-->
<build> ......</build>
</project>

三、生命周期

(一)定义

Maven生命周期就是为了对所有的构建过程进行抽象和统一,包括项目清理、初始化、编译、打包、测试、部署等几乎所有构建步骤,生命周期可以理解为构建工程的步骤。

(二)Maven三大生命周期

Mlaven拥有三套相互独立的生命周期:分别是clean、default和Dsite。

clean Lifecycle:在进行真正的构建之前进行一些清理工作。mvn clean

default Llfecycle:构建的核心部分。编译,测试,打包,部暑等等。

site Lifecycle:生成项目报告,站点。发布站点。

四、Idea搭建Maven项目

Idea仓库设置Maven仓库地址:

setting:conf中路径。

repository:仓库repository。

Runner:取消勾选代理(Delegate)、选择JRE

五、Maven创建Java项目

方式一:Project---Maven---jdk选择---Create---maven-archetype-quickstart---项目名---地址---组织名---项目名---版本---确认信息。

方式二(推荐):Project---Maven---jdk选择---项目名---地址---组织名---项目名---版本---确认信息。

六、Maven创建JavaWeb项目

方式一(推荐):Project---Maven---jdk选择---Create---maven-archetype-webapp---项目名---地址---组织名---项目名---版本---确认信息。

方式二:Project---Maven---jdk选择---项目名---地址---组织名---项目名---版本---确认信息。

需要添加webapp文件夹:file---project structure---modules---+Web---下方选择目录结构到webapp---上方路径调整---Artifacts---+Web App...Ex...---from--OK

七、Maven创建Web项目知识点

(一)使用内置TomCat

<build>
<plugins>
   <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
         <configuration>
            <port>80</port>
            <path>/zhang</path>
         </configuration>
   </plugin>
</plugins>
</build>

(二)常用命令

Maven的命令需要在pom.xml所在目录中执行以下命令。

1.mvn compile

执行mvn compile命令,完成编译操作。执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。

2.mvn clean

执行mvn clean命令,执行完毕后,会将target目录删除。

3.mvn test

执行mvn test命令,完成单元测试操作。执行完毕后,会在target目录中生成新的文件夹,例如:surefire-reports(测试报告) 、test-classes(测试的字节码文件)。

4.Maven package

执行mvn package命令,完成打包操作。执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war。

5.mvn install

执行mvn install命令,完成将打好的jar包安装到本地仓库的操作执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用。

6.mvn clean compile命令

cmd中录入mvn clean compile命令,组合指令,先执行clean,再执行compile,通常应用于上线前执行,清除测试类。

7.mvn clean test命令

cmd中录入mvn clean test命令,组合指令,先执行clean,再执行test,通常应用于测试环节。

8.mvn clean package命令

cmd中录入mvn clean package命令,组合指令,先执行clean,再执行package,将项目打包,通常应用于发布前。

执行过程:
清理----清空环境

编译----编译源码

测试----测试源码
打包----将编译的非测试类打包

9.mvn clean install命令

cmd中录入mwn clean install查看仓库,当前项目被发布到仓库中组合指令,先执行clean。再执行install,将项目打包,通常应用于发布前。

执行过程:
清理----清空环堤

编译----编译源码

测试----测试源码
打包----将编译的非测试类打包

部署----将打好的包发布到资源仓库中

(三)依赖管理知识点

1.原理

 2.依赖范围(scope标签的取值)

依赖范围(Scope)对于主代码classpath有效对于测试代码classpath有效被打包,对于运行时classpath有效例子
compileYYYlog4j
test-Y-junit
providedYY-servlet-api
runtime--YJDBC Driver Implemenyation

3.依赖传递

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java张金贺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值