Maven 基础

maven 的 Apache 公司开源项目,是项目构建工具。用来依赖管理。

  • <mstyle mathcolor="&#35;f01"> E c l i p s e M a v e n 使 ( )   </mstyle> \color{#f01}{Eclipse上Maven环境配置使用 (全) } EclipseMaven使() https://www.cnblogs.com/tangshengwei/p/6341462.html


1 maven的好处?

maven 项目 “没有” jar包

使用传统项目开发 crm 项目,项目大小:

同样的项目使用 maven 开发

同样的代码,实现功能都一样,maven 项目如何做到的?

可以初步判断,maven 项目中一定没有jar包。

没有 jar 包,maven项目如何运行?


2 maven的好处如何实现?

依赖管理 & 坐标

  • 依赖管理:就是对jar包统一管理。

  • 坐标:

项目构建

  • 项目在编码完成后,对项目进行编译、测试、打包、部署。
  • 一系列操作,都可以通过命令实现。

【案例】通过 maven 命令,将 web 项目发布到 tomcat:


3 maven安装、配置本地仓库

maven 程序安装前提:maven 程序java 开发,它的运行依赖 jdk (<mark>注意,这里不是jre</mark>)

maven 下载安装


配置环境变量

配置本地仓库

仓库类型:

  • 创建一个本地仓库,如:“F:\MyFile\javaFile\localRepository-maven”
  • 修改配置,settings.xml

  • 修改mirrors
    因为,网速问题,需要 settings.xml 里再修改点东西,添加一个阿里的镜像
    <mirror>  
	  <id>alimaven</id>  
	  <name>aliyun maven</name>  
	  <url>https://maven.aliyun.com/repository/public</url>  
	  <mirrorOf>central</mirrorOf>  
	</mirror>  

4 maven项目标准目录结构

  • <mark>对各种文件存放目录进行细分</mark>。

  • target :编译了的源码

  • main 存放类
  • test 存放单元测试类

  • java 等同于 java project 的 src 放java代码
  • resources 配置文件
  • webapp 相当于 webcontent 放(页面、css、js、image)

Java EE视图(不推荐)

Java 视图(推荐)


5 maven的常用命令 - (应用)

clean:清理

  • Eclipse 清理 bin 目录下编译过的class文件,并重新编译一次。

  • tomcat 清理 tomcat 目录下的

  • maven 删除 target 目录 mvn clean

compile:编译

以前,eclipse 为我们自动编译。

  • maven mvn compile 编译文件,生成 target 目录。

test:单元测试

maven test

将项目根目录下 src/test/java 目录下的单元测试类都会执行

<mark>单元测试类名有要求:XxxxTest.java</mark>

package:打包

  • web project — war 包
  • java project — jar 包

将项目打包,打包项目根目录下 target 目录

install:安装

解决本地多个项目共用一个 jar 包
打包到本地仓库。

<mstyle mathcolor="&#35;ff0011"> m a v e n </mstyle> \color{#ff0011}{maven 项目的生命周期} maven

在 maven 中存在 “三套” 生命周期,每一套生命周期都是相互独立的。互不影响。

  • CleanLifeCycle:清理生命周期
    • Clean
  • <mark>DefaultLifeCycle:默认生命周期</mark>
    • compile,test,package,install,deploy
  • SiteLifeCycle:站点生命周期
    • site

在<mark>一套生命周期内</mark>,执行后面的命令,前面操作会自动执行。
相反,<mark>不在一套生命周期内</mark>,不会执行其他生命周期的命令。即互不影响。


6 maven整合web项目案例

配置 eclipse 中 maven 环境

  1. 配置 m2e 插件,Mars2 版本自带 maven 插件
  2. 但是,<mark>需要配置 maven 程序</mark>


  3. 配置 userSetting:让 eclipse 知道 maven 的仓库在哪里
  4. 构建索引:提高检索速度



    rebuild index

Mave 整合 Servlat

  • 创建项目
    Maven Project:创建一个普通的 Maven 项目 或者 父工程(两个项目中的继承关系)
    Maven Module:创建子模块
  • 勾选
    Create a simple project:跳过原型选择,创建 Maven 项目目录结构相对完整
    Add project to working set:(可以不选)创建Working set来帮助我们管理过多的工程项目
<mstyle mathcolor="&#35;f01"> </mstyle> \color{#f01}{重点:坐标信息}


  • finish
一些问题
  1. 报错


    +《web.xml is missing and is set to true[解决]》https://www.cnblogs.com/wangleideyu/p/9358692.html
    web.xml is missing and is set to true
    在项目视图下 ==》右键 单击项目名
    选择 “Deployment Descriptor”
    选择 : Generate Deployment Descriptor Stub
    产生 WEB-INF 文件夹和 web.xml 文件
    即可解决问题

  2. jdk 版本

<build>
    <plugins>
        <plugin>
            <!-- 设置编译版本为1.7 -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>
开始整合
  • 创建 servlet


    原因:缺失 servlet -api-xx.jar 包

查找依赖