对于maven的认识

关于maven的认识详解

https://www.cnblogs.com/whgk/p/7112560.html>

一、关于jar包:

  • jar包就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法。
  • JAR(Java ARchive)是将一系列文件合并到单个压缩文件里,就象Zip那样。进一步打开,可以看到很多的.class文件,.class文件就是java源码经过编译后的文件。JAR文件是跨平台的

二、关于maven到底是什么?

  • Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具

例如:pom.xml获取"junit"的jar包的编写。

为什么通过groupId、artifactId、version三个属性就能定位一个jar包?

三、关于仓库的概念

  • 通过pom.xml中的配置,就能够获取到想要的jar包(还没讲解如何配置先需要了解一下仓库的概念),但是这些jar是在哪里呢?就是我们从哪里获取到的这些jar包?答案就是仓库。
        * 仓库分为:本地仓库、第三方仓库(私服)、中央仓库
    3.1 本地仓库
    Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下

        本机本地仓库`D:\JAVA\apache-maven-3.8.1-bin\apache-maven-3.8.1\LocalRepository` 创建的本地仓库,将网上下载的所有jar包,都丢到该目录下,就可以直接通过maven的pom.xml文件直接拿
    

    3.2 第三方仓库

    3.3 中央仓库

    maven的pom.xml文件引入依赖

    1. 进入https://mvnrepository.com,查找需要引入的jar包及名称

    2. 选择合适的版本

    3. 导入依赖

  • 总结:获取jar包的过程

      ![](https://img2020.cnblogs.com/blog/2292527/202106/2292527-20210604201739340-114603806.png)
    2. 进入[https://mvnrepository.com](),查找需要引入的jar包及名称
      ![](https://img2020.cnblogs.com/blog/2292527/202106/2292527-20210605220118405-1552059276.png)
    

四、关于maven项目的一些认识

4.1 maven java项目结构
maven_java
            ---pom.xml    核心配置,项目根下
            ---src
             ---main      
                ---java    java源码目录
               ---resources  java配置文件目录
             ---test
               ---java    测试源码目录
               ---resources  测试配置目录

图中有一个"target"目录,是因为将该java项目进行了编译,src/main/java下的源代码就会编译成.class文件放入target目录中,target就是输出目录。

4.1 maven web项目结构
pom.xml 核心配置
          src/main/java java源码
          src/main/resources java配置
          src/main/webapp myeclipse web项目中 WebRoot目录
             |-- WEB-INF
            |-- web.xml
          src/test 测试
          target 输出目录

4.2 maven项目的完整生命周期,当执行生命周期后面命令时,前面步骤的命令自动执行

红色标记字体的意思就是当我们直接使用"mvn install"命令对项目进行上传至本地仓库时,那么前面所有的步骤将会自动执行,比如源代码的编译,打包等等。

五、用IEDA创建maven项目

5.1 "初始化设置" 引入本地"maven":安装路径、配置文件、本地仓库(jar包)

5.2 对项目结构进行设置

5.3 对pom.xml配置文件进行设置

  • 5.3.1 对于pom.xml中dependency和plugin的区别:

  1. dependency引入的东西是你代码编译/运行时所需要的东西,项目打包后这些东西基本都在。
    如:JSON工具包GSON(com.google.code.gson),不仅开发时要用,项目运行时也要用,就需要打包进项目中;
    而像 javax.servlet-api 这种由容器实现的接口,运行时调用的是容器的具体实现,开发时它的引入范围应该是编译(provided),不会被打包进项目。

  2. plugin引入的东西,如它的字面意思一样,是插件,作为开发/编译/打包时的一种辅助工具,一般不会打包进项目中。
    如:使用 maven-source-plugin 插件将API包的源码一起打包,方便发布至Maven仓库,而这个插件不会在打包后的项目中出现

posted @ 2021-06-04 19:52  BigMonster85  阅读(76)  评论(0)    收藏  举报