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

3.Maven 目录结构

       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代码 

<settings>   
  <localRepository>/Users/zhouzhenlin/.m2/repository</localRepository>  
</settings> 

4.配置阿里云仓库


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

具体内容和示意图如下

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

5.Maven生命周期

生命周期介绍

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/查询。

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
</dependencies>

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

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

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项目里引入的包中加入<optional>true</optional>

          2.排除性依赖(exclusion)

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

<dependencies>
    <dependency>
      <groupId>com.demo</groupId>
      <artifactId>demo</artifactId>
      <version>1.0-SNAPSHOT</version>
      <exclusions>
       <exclusion>
        <groupId>不引入包的信息</groupId>
        <artifactId>不引入包的信息</artifactId>
       </exclusion>
      </exclusions>
    </dependency>
</dependencies>

2.聚合

        为了一键构建,方便项目构建(compile test package deploy install)

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

3.继承

    目的:为了消除重复依赖和统一管理依赖版本

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

<parent>
    <groupId>com.demo</groupId>
    <artifactId>father</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

可继承的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文件,就可以修改,本地仓库的地址啦

IntelliJ idea 中创建 Maven JaveSE 项目

1.新建项目

2.选择maven项目

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

3. 项目参数

4.maven 目录

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

5.确认创建项目

IntelliJ idea 中创建 Maven JaveEE 项目

1.新建项目

2.选中maven webapp格式

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

3.项目参数

4.确认Maven路径

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

5.确认项目名称

无需改动,点击Finish即可

6新建java源代码目录

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

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

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

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

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

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

9.配置 tomcat 服务器

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

配置 tomcat 截图,如下:

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

 

 

 

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

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值