MavenDay01(maven环境配置,基础开发)

一、maven的好处
    使用传统的web项目开发的crm大小 40多m
    同样的项目使用maven,它的大小只有几百KB
    同样的项目使用maven工程来实现,它的项目源码很小,可以初步推断里面一定没有jar包,没有jar包的项目

二、maven优点是如何实现的
1、依赖管理
2、项目的一键构建
    (编译--测试--运行--打包--安装)

    构建
    指的是项目从编译--测试--运行--打包--安装整个过程都交给maven进行管理,这个过程称为构建

maven将项目构建的过程进行标准化,每个阶段使用一个命令完成。
清理-》编译-》测试-》报告-》打包-》部署
清理阶段对应maven的命令是clean,清理输出的class文件
编译阶段对应maven的命令是complie,将java代码编译成class文件
打包阶段对应maven的命令是package,java工程可以打包成jar包,web可以打成war包
三、Maven的安装
从hhtp://maven.apache.org/download.cgi下载
解压到一个不含中文和空格的目录中
    bin目录 mvn.bat(以run方式运行目录)、mvnDebug.bat(以debug方式运行项目)
    boot目录maven运行需要类加载器
    conf目录settings.xml整个maven工具核心配置文件
    lib目录maven运行依赖jar包
环境变量配置:
    电脑上需要安装jdk1.8+版本(将JAVA_Home/bin配置环境变量path)
    配置MAVEN_HOME
        D:\apache-maven-3.3.9
    将%MAVEN_HOME%/BIN加入环境变量path

    通过mvn -v命令检查maven是否安装成功

    maven的工作需要从仓库下载一些jar包,从远程仓库(可以理解成互联网上的仓库)下载jar包并存在本地仓库,本地仓库就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用再每次从远程仓库中下载了

    本地仓库的配置
    D:\apache-maven-3.3.9\conf\settings.xml文件中
        
        D:\Repositories  

    项目中 src是放项目的源代码
    pom.xml作为一个maven工程必不可少的 代表了maven的配置文件

    maven的目录结构
        java        放入项目的源码
        resources   放入配置文件
        webapp      页面素材    

四、Maven命令
clean 是maven工程的清理命令,执行clean会删除target目录的内容

package 是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包

install 是maven工程的安装目录,执行install将maven打成jar包或war包发布到本地仓库

test 是maven工程的测试命令,会执行 src/test/java下的单元测试类
cmd执行mvn test 执行src/test/java 下单元测试类

complie 是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下
cmd中用mvn complie

五、生命周期
maven对项目构建过程分为三套独立的生命周期,分别为:
    Clean Lifecycle 在进行真正的构建之前进行一些清理工作
    Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等
    Site Lifecycle 生成项目报告,站点,发布站点

阶段

    当后面的命令执行时,执行前面的操作

六、使用eclipse开发maven项目
 1、m2e的插件
    因为使用的eclipse版本比较高,会自带maven插件
    preferences->maven->Installations 选择自己的maven版本 没有先add

 2、preferences->maven->User Settings 配置本地仓库让eclipse找jar包
    D:\apache-maven-3.3.9\conf\settings.xml

 3、构建索引
    Window->show view->other->maven repositories

 4、重构索引
    Local repository 右键 rebuild index

 5、在eclipse中创建maven工程
    Maven Project 将来项目拆分的时候,需要创建一个这样的工程
    Maven Module maven模块:可以用它来创建一个项目的某个模块,比如:crm-dao、crm-service、crm-web

    勾选 create a simple project 会生成maven的目录结构

    use a default workspace location 放在默认名称空间下

group id 公司组织名称
Artifact id 项目名
version  版本
Packaging
name
description

可以看到工程,但是报错,需要手动添加WEB-INF 和他的web.xml

src/java/main 创建一个servlet,但报错

要解决问题,就是要把servlet-api-xxx.jar包放进来,作为maven工程应当添加servlet的坐标,从而导入它的jar包
直接打开过程的pom.xml文件,再添加坐标
添加jar包的坐标时,还可以指定这个jar包将来的作用范围

七、基本概念
A依赖B:需要在A的pom.xml文件中添加B的坐标,添加左边时需要指定依赖范围,依赖范围包括:
    complie:编译范围,指A在编译时依赖B,此范围为默认范围,编译范围的依赖会用在编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包

    provided:provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用,provided依赖在编译和测试的时候需要,在运行时不需要.比如:servlet api被tomcat容器提供

    runtime:runtime依赖在运行和测试系统的时候需要,而在编译的时候不需要,比如:jdbc的驱动包。由于运行时需要所以runtime范围的依赖会被打包

    test:test范围依赖 在编译和运行时不需要,只有在测试编译和测试运行阶段可用,比如:junit,由于运行时不需要所以test范围依赖不会被打包

    system:system范围依赖与provided类似,但是必须显式的提供一个对于本地系统中jar文件的路径,需要指定systemPath磁盘路径,system依赖不推荐用

设置编译版本
使用maven的插件来设置成jdk1.8

   
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.2
                
                    1.8
                    1.8
                    UTF-8
                    true
                
            
        
  

项目右键 maven->update project

 

MavenDay01(maven环境配置,基础开发)_第1张图片

 MavenDay01(maven环境配置,基础开发)_第2张图片

你可能感兴趣的:(Maven)