Maven相关配置

目录

Maven 下载与安装

1.什么是 Maven

2.Maven 下载地址

3.Maven 目录结构

4.配置环境变量

5.Maven 常用命令

坐标-仓库-生命周期

1.什么是坐标

2.什么是仓库

3.修改本地仓库位置

4.配置阿里云仓库

5.Maven生命周期

依赖-聚合-继承

1.依赖

2.聚合​

3.继承

IntelliJ idea中配置Maven

IntelliJ idea 中创建 Maven JaveSE 项目

IntelliJ idea 中创建 Maven JaveEE 项目


Maven 下载与安装

1.什么是 Maven

Maven 是一个 Java 项目构建和管理工具。

作用:

  • 标准化项目结构
  • 标准化项目流程(编译,打包,发布...)
  • 依赖管理

2.Maven 下载地址

http://maven.apache.org/download.cgi

Maven相关配置_第1张图片

3.Maven 目录结构

Maven相关配置_第2张图片

       bin目录:Maven的运行脚本。mvn.bat是基于windows的脚本。在cmd中每次输入一条mvn的命令都是在调用并执行这些脚本。

        boot目录:该目录只有一个文件plexus-classworlds-x.x.x.jar。他是一个类加载器的框架,相对于JDK中的类加载器,他提供了更丰富的语法以方便配置,Maven使用这个框架来加载自己的类库。

        conf目录:该目录包含一个非常重要的文件setting.xml。配置该文件就能在project中定制Maven的行为。

        lib目录:包含了所有Maven运行时需要的java类库以及用到的第三方类库。

        LICENSE:软件许可证。

        NOTICE:所包含的第三方软件。

        README.txt:包含Maven的简介。

4.配置环境变量

将解压后的Maven的bin路径配置到环境变量path

 在dos窗口下输入mvn -v查看Maven的版本信息

5.Maven 常用命令

  1. mvn  clean  清理
  2. mvn  compile 编译
  3. mvn test 测试
  4. mvn package 打包
  5. mvn clean package 先清理后打包
  6. mvn install 安装(将项目安装本地仓库)
  7. mvn deploy 发布(发布到服务器--私服、中央仓库(maven提供))

坐标-仓库-生命周期

1.什么是坐标

   组成元素

   groupId:一般代表公司名。

   artifactId:一般为项目名。

   version:版本号。

   package:定义Maven项目的打包方式。

   classifier:表示在相同版本下针对不同的环境或者jdk使用的jar。

2.什么是仓库

     仓库就是指存储所有项目的共享构件(包)的位置。

     分为两大类:1.本地仓库,2.远程仓库。其中远程仓库分为:中央仓库,私服,其他公共库。

     ①本地仓库是在第一次执行maven命令的时候被创建,不是安装maven后创建。

     ②无论是Windows还是Linux,本地仓库默认位置都是在用户目录下的${user.home}/.m2/repositpry/

     ③修改本地仓库的方式:

      1.用户范围修改:把setting.xml放到.m2文件下。

      2.全局修改:修改maven目录中setting.xml文件的localRepository。

3.修改本地仓库位置

不管是用户范围修改还是全局修改,都是在 settings.xml 文件中加入下面代码即可,只是修改的地方不一样.

用户范围修改,修改 下的 settings.xml 文件,(一般是这个).

全局修改,修改 maven 安装目录中 config 下的 settings.xml 文件.

具体就是修改如下的Xml代码 

   
  /Users/zhouzhenlin/.m2/repository  
 

4.配置阿里云仓库


通过修改${user.home}/.m2/settings.xml 文件来配置远程仓库路径.

具体内容和示意图如下


     alimaven
     aliyun maven
     http://maven.aliyun.com/nexus/content/groups/public/
     central        

5.Maven生命周期

生命周期介绍

Maven相关配置_第3张图片

Maven相关配置_第4张图片

Maven相关配置_第5张图片

1).Maven有三套相互独立的生命周期。

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

        Default Lifecycle:构建核心部分,编译,测试,打包,部署等等。

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

       注意:运行任何一个阶段的时候,它前面的所有阶段都会被执行,这也就是为什么我们在运行mvn install的时候,代码会被编译,测试,打包。每个生命周期都包含一些阶段,阶段是有顺序的。

2).Clean Lifecycle

      ①pre-clean:执行清理前需要完成的工作。

      ②clean:清理上次构建生成的文件。

      ③post-clean:执行清理后需要完成的工作。

3).Default Lifecycle

       ①validate:验证工程是否正确,所需要的资源是否可用。

       ②compile:编译项目的源代码。

       ③test:测试已编译的源代码。

       ④package:已编译的代码打包。

       ⑤integration-test:将包处理和发布到一个能够进行集成测试的环境。

       ⑥verify:运行所有检查,验证包是否有效且达到质量标准。

       ⑦install:把包安装到本地仓库。

       ⑧deploy:在集成或发布环境下执行,将最终版本的包拷贝到远程仓库。

4).Site Lifecycle

       ①pre-site:生成项目站点之前需要完成的工作。

       ②site:生成项目站点文档。

       ③post-site:生成站点之后需要完成的工作。

       ④site-deploy:将项目站点发布到服务器。

依赖-聚合-继承

1.依赖

       项目中需要引入的jar包称之为依赖。

       在pom.xml的dependencies标签里加入dependency标签,具体信息可以去https://mvnrepository.com/查询。


    
      junit
      junit
      3.8.1
      test
    

1)依赖的范围:依赖范围是用来控制与编译、测试、运行三总classpath的关系。来设置依赖范围。

注意:在默认情况下scope的范围是compile。

Maven相关配置_第6张图片

2)依赖的传递性

  如果A项目引入了a包,B项目引入了A项目,那么B项目也就引入了a包。

  传递性的规则:

         1 .路径最近优先:c->b->a,c依赖b,b依赖a。那么c会优先使用b中的包。

         2.路径相同配置在前优先:c->b,c->a,c依赖b,c依赖a。如果c把依赖b的代码写在前面那么就优先使用b的包。

3)去除依赖

         如果b->a,而你b中不想要a中的某个包就可以使用去除依赖。

         1.选择性依赖(optional)

             在a项目里引入的包中加入true

          2.排除性依赖(exclusion)

             在b项目里引用a项目的代码中加入exclusion标签


    
      com.demo
      demo
      1.0-SNAPSHOT
      
       
        不引入包的信息
        不引入包的信息
       
      
    

2.聚合

        Maven的聚合功能可以通过一个父模块将所有要构建模块整合起来,将父模块的打包声明为POM,通过将各模块集中到父POM中。

Maven相关配置_第7张图片

3.继承

    与面向对象的继承概念一样,通过继承消除重复编码的行为。父模块提取公共的部分,子模块使用继承父模块获取公共部分。


    com.demo
    father
    0.0.1-SNAPSHOT

可继承的POM元素如下:

  • groupId:项目组ID,项目坐标的核心元素
  • version:项目版本,项目坐标的核心因素
  • description:项目的描述信息
  • organization:项目的组织信息
  • inceptionYear:项目的创始年份
  • url:项目的URL地址
  • developers:项目的开发者信息
  • contributors:项目的贡献者信息
  • distributionManagement:项目的部署配置
  • issueManagement:项目的缺陷跟踪系统信息
  • ciManagement:项目的持续集成系统信息
  • scm:项目的版本控制系统西溪
  • malilingLists:项目的邮件列表信息
  • properties:自定义的Maven属性
  • dependencies:项目的依赖配置
  • dependencyManagement:项目的依赖管理配置
  • repositories:项目的仓库配置
  • build:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等
  • reporting:包括项目的报告输出目录配置、报告插件配置等

IntelliJ idea中配置Maven

如下图,看到在 intelliJ idea 编辑器里面对maven进行配置。

一般默认配置是这样的:

这样的话,你就修改他默认位置的setting.xml文件,就可以修改,本地仓库的地址啦

Maven相关配置_第8张图片

IntelliJ idea 中创建 Maven JaveSE 项目

1.新建项目

Maven相关配置_第9张图片

2.选择maven项目

1. 左边选择Maven
2. 勾选Create from archetype
3. 选择org.apache.maven.archetypes:maven-archetype-quickstart
4. Next

Maven相关配置_第10张图片

3. 项目参数

Maven相关配置_第11张图片

4.maven 目录

经过上个知识点的IDEA设置设置后,就可以看到如图所示的maven设置

Maven相关配置_第12张图片

5.确认创建项目

Maven相关配置_第13张图片

IntelliJ idea 中创建 Maven JaveEE 项目

1.新建项目

Maven相关配置_第14张图片

2.选中maven webapp格式

1. 左边选中Maven
2. 勾选Create from archetype
3. 选中 org.apache.maven.archetypes:maven-archetype-webapp
4. Next

Maven相关配置_第15张图片

3.项目参数

Maven相关配置_第16张图片

4.确认Maven路径

这一步将看到Maven 配置中的参数,无需做改动

Maven相关配置_第17张图片

5.确认项目名称

无需改动,点击Finish即可

Maven相关配置_第18张图片

6新建java源代码目录

maven web项目默认是没有java源代码目录的,所以需要手动创建,并设置其为源代码目录
右键main目录-> New->Directory->输入java->右键java->Mark Directory as-> Sources Root
这样就创建了存放java源文件的目录了

Maven相关配置_第19张图片

7.标记之后的目录结构和颜色如下

Maven相关配置_第20张图片

8.配置项目和模块的编译输出目录

项目编译输出目录不需要改变,模块输出目录,只需要继承项目输出目录即可.

配置项目编译输出目录,如下图:

Maven相关配置_第21张图片

配置模块编译输出目录,如下图

Maven相关配置_第22张图片

9.配置 tomcat 服务器

需要先配置 facts 和 artifacts之后,再进行 tomcat 的配置

Maven相关配置_第23张图片

Maven相关配置_第24张图片

配置 tomcat 截图,如下:

Maven相关配置_第25张图片

Maven相关配置_第26张图片

10. Maven web 项目完整的项目结构

Maven相关配置_第27张图片

 

 

 

吃水不忘挖井人,时刻想念发帖人。

你可能感兴趣的:(#,后端知识)