zoukankan      html  css  js  c++  java
  • maven

     

     

    第一节 为什么要学习Maven?

    1、从『构建』角度解释

    ①个人开发流程

    ./images

    ②团队开发流程

    ./images

    引申:更大范围内的团队协作

    ./images

    # 2、从『依赖』角度解释

    # ①jar包的规模

    随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用的jar包也越来越多。项目中,一个模块里面用到上百个jar包是非常正常的。

    ./images

    # ②jar包的来源

    • 这个jar包所属技术的官网。官网通常是英文界面,网站的结构又不尽相同,甚至找到下载链接还发现需要通过特殊的工具下载。

    • 第三方网站提供下载。问题是不规范,在使用过程中会出现各种问题。

      • jar包的名称
      • jar包的版本
      • jar包内的具体细节

    # ③jar包之间的依赖关系

    框架中使用的jar包,不仅数量庞大,而且彼此之间存在错综复杂的依赖关系。依赖关系的复杂程度,已经上升到了完全不能靠人力手动解决的程度。另外,jar包之间有可能产生冲突。进一步增加了我们在jar包使用过程中的难度。

    到目前为止,我们熟悉的jar包之间依赖关系有下面这些例子:

    • junit-4.12依赖hamcrest-core-1.3
    • thymeleaf-3.0.12.RELEASE依赖ognl-3.1.26
      • ognl-3.1.26依赖javassist-3.20.0-GA
    • thymeleaf-3.0.12.RELEASE依赖attoparser-2.0.5.RELEASE
    • thymeleaf-3.0.12.RELEASE依赖unbescape-1.1.6.RELEASE
    • thymeleaf-3.0.12.RELEASE依赖slf4j-api-1.7.26

    而实际上jar包之间的依赖关系是普遍存在的,如果要由程序员手动梳理无疑会增加极高的学习成本,而这些工作又对实现业务功能毫无帮助。

    第一章-Maven相关的概念

    知识点-Maven介绍

    1.目标

    • 能够了解Maven的作用

    2.路径

    • 什么是Maven

    • Maven的作用

    • Maven的好处

    3.讲解

    3.1什么是Maven

    Maven是项目进行模型抽象,充分运用的面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

    说白了: Maven是由Apache开发的一个工具。用来管理java项目(依赖(jar)管理, 项目构建, 分模块开发 ,管理项目的生命周期).

    3.2Maven的作用

    • 依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。

    • 项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。

    • maven对工程分模块构建,提高开发效率。 (后面Maven高级会涉及)

    3.3 Maven的好处

    • 使用普通方式构建项目

    使用Maven构建项目

    4.小结

    1. Maven是Apache开发的一个项目管理工具. 用来管理java项目的

    2. Maven的作用

      • 使用maven创建项目

      • 管理项目生命周期

      • 引入依赖(jar包)

      • 分模块构建项目(后面学)

    第二节 什么是Maven?

    Maven是Apache软件基金会组织维护的一款专门为Java项目提供构建和依赖管理支持的工具。

    ./images

    # 1、构建

    Java项目开发过程中,构建指的是使用『原材料生产产品』的过程。

    • 原材料

      • Java源代码

      • 基于HTML的Thymeleaf文件

      • 图片

      • 配置文件

      • # ……
    • 产品

      • 一个可以在服务器上运行的项目

    构建过程包含的主要的环节:

    • 清理:删除上一次构建的结果,为下一次构建做好准备
    • 编译:Java源程序编译成*.class字节码文件
    • 测试:运行提前准备好的测试程序
    • 报告:针对刚才测试的结果生成一个全面的信息
    • 打包
      • Java工程:jar包
      • Web工程:war包
    • 安装:把一个Maven工程经过打包操作生成的 jar 包或 war 包安装到Maven仓库
    • 部署:将准备好的jar包或war包部署到服务器上运行

    # 2、依赖

    如果A工程里面用到了B工程的类、接口、配置文件等等这样的资源,那么我们就可以说A依赖B。例如:

    • junit-4.12依赖hamcrest-core-1.3
    • thymeleaf-3.0.12.RELEASE依赖ognl-3.1.26
      • ognl-3.1.26依赖javassist-3.20.0-GA
    • thymeleaf-3.0.12.RELEASE依赖attoparser-2.0.5.RELEASE
    • thymeleaf-3.0.12.RELEASE依赖unbescape-1.1.6.RELEASE
    • thymeleaf-3.0.12.RELEASE依赖slf4j-api-1.7.26

    依赖管理中要解决的具体问题:

    • jar包的下载:使用Maven之后,jar包会从规范的远程仓库下载到本地
    • jar包之间的依赖:通过依赖的传递性自动完成
    • jar包之间的冲突:通过对依赖的配置进行调整,让某些jar包不会被导入

    # 3、Maven的工作机制

    ./images

    第一节 Maven核心程序解压与配置

    # 1、解压Maven核心程序

    核心程序压缩包:apache-maven-3.5.4-bin.zip,解压到非中文、没有空格的目录。例如:

    ./images

    在解压目录中,我们需要着重关注Maven的核心配置文件:conf/settings.xml

    # 2、指定本地仓库

    本地仓库默认值:用户家目录/.m2/repository。由于本地仓库的默认位置是在用户的家目录下,而家目录往往是在C盘,也就是系统盘。将来Maven仓库中jar包越来越多,仓库体积越来越大,可能会拖慢C盘运行速度,影响系统性能。所以建议将Maven的本地仓库放在其他盘符下。配置方式如下:

    <!-- localRepository
    | The path to the local repository maven will use to store artifacts.
    |
    | Default: ${user.home}/.m2/repository
    <localRepository>/path/to/local/repo</localRepository>
    -->
    <localRepository>D:maven-rep1026</localRepository>
    
     

    本地仓库这个目录,我们手动创建一个空的目录即可。

    记住:一定要把localRepository标签从注释中拿出来。

    注意:本地仓库本身也需要使用一个非中文、没有空格的目录。

    # 3、配置阿里云提供的镜像仓库

    Maven下载jar包默认访问境外的中央仓库,速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让Maven下载jar包的时候速度更快。配置的方式是:将下面mirror标签整体复制到mirrors标签的内部。

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

    # 4、配置Maven工程的基础JDK版本

    如果按照默认配置运行,Java工程使用的JDK版本是1.5。配置的方式是:将profile标签整个复制到profiles标签内。

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

     

     

    4.小结

    1. 注意事项

      • Maven安装包仓库 都需要解压到一个==没有中文和空格==的目录下(建议解压到不同的目录)

      • 配置

        • MAVEN_HOME 配置到Maven的解压目录

        • Path 配置到bin目录

      • apache-maven-3.3.9confsettings.xml配置本地仓库

    第二节 配置环境变量

    # 1、检查JAVA_HOME配置是否正确

    Maven是一个用Java语言开发的程序,它必须基于JDK来运行,需要通过JAVA_HOME来找到JDK的安装位置。

    ./images

    可以使用下面的命令验证:

    C:UsersAdministrator>echo %JAVA_HOME%
    D:softwareJava
    
    C:UsersAdministrator>java -version
    java version "1.8.0_141"
    Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)
    
     

    # 2、配置MAVEN_HOME

    ./images

    配置环境变量的规律:

    XXX_HOME指向的是bin目录的上一级

    PATH指向的是bin目录

    # 3、配置PATH

    ./images

    # 4、验证

    C:UsersAdministrator>mvn -v
    Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
    Maven home: D:softwareapache-maven-3.5.4in..
    Java version: 1.8.0_141, vendor: Oracle Corporation, runtime: D:softwareJavajre
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
    

     

     

    知识点-IDEA集成Maven(很重要)

    1.目标

    • 能够掌握IDEA配置本地Maven

    2.路径

    1. 在IDEA配置Maven

    2. 配置默认的Maven环境

    3.讲解

    3.1配置Maven

    • 配置Maven

    配置参数(解决创建慢的问题) -DarchetypeCatalog=internal

    • 然后新创建project,一定不要使用原来的project,要求各位第一次使用maven创建的时候,一定要联网

    4.小结

    • 配置默认Maven环境 目的: 为了下次创建的时候 不需要再选择Maven了, 使用的就是这个默认环境的

    • 配置三块

      • maven_home

      • Maven的配置文件

      • 本地仓库的路径

    第三章-使用IDEA创建Maven工程

    实操-创建javase工程

    1.目标

    • 能够使用IDEA创建javase的Maven工程

    2.路径

    1. 创建java工程

    2. java工程目录结构

    3. 编写Hello World!

    3.讲解

    3.1创建java工程

    3.2 java工程目录结构

    • 需要main/java文件夹变成 源码的目录(存放java源码)

     

    • 需要test/java文件夹变成 测试源码的目录(存放单元测试)

    • 创建resources目录, 变成资源的目录

    • 整体结构

    3.3 编写Hello World!

    4.小结

    1. JavaSe工程的骨架

    1. 项目的结构

  • 相关阅读:
    IntelliJ IDEA给Serializable类加上自动的serialVersionUID
    对于 Netty ByteBuf 的零拷贝(Zero Copy) 的理解
    mybatis 多对多
    unnamed not found for the web module
    Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1146
    Caused by: java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for com.bj186.crm.pojo.User
    mybatis中配置中引入properties文件
    Caused by: java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for com.bj186.crm.mapper.UserMapper.Integer
    Caused by: java.lang.ClassNotFoundException: Cannot find class: User
    ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath
  • 原文地址:https://www.cnblogs.com/faded8679/p/14974209.html
Copyright © 2011-2022 走看看