• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

MAVEN教程--个人学习笔记

武飞扬头像
张维克
帮助1

目录

1.1 maven概念

1.2 maven作用

1.3 maven仓库

1.4 maven创建maven项目

1.5 idea创建web项目

1.6 依赖配置

1.7 依赖管理

1.7.1 依赖传递

1.7.2 依赖传递冲突问题

1.7.3 可选依赖

1.7.4 排除依赖

1.7.5 依赖范围

1.8 生命周期与插件


Maven 3.6.3 的下载、安装、配置、检测(详细讲解)_【官方推荐】、唐城的博客-CSDN博客_maven3.6.3安装

学新通

1.1 maven概念

传统构建项目遇到的问题:

  1. jar包不统一,jar包不兼容使用maven
  2. 工程升级维护过程操作繁琐

Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

POM:项目对象模型

1.2 maven作用

项目构建:提供标准的,跨平台的自动化项目构建方式

依赖管理:方便快捷的管理项目以来的资源(jar包),避免资源间的版本冲突问题

统一开发结构:提供标准的,统一的项目结构

1.3 maven仓库

仓库:用于存储资源,包含各种jar包

本地仓库

远程仓库:

        私服仓库:部门/公司范围内存储资源的仓库,从中央仓库获取资源,可放一些具有版权的仓库

        中央仓库:MAVEN团队维护,存储所有资源的仓库,开源jar包

Maven仓库中用于描述仓库中资源位置

https://repo1.maven.org/maven2/junit/junit/4.13.2/

Maven坐标主要组成

grouId:定义当前Maven项目隶属组织名称

artifactID:定义当前Maven项目名称

version:定义当前项目版本号

mvnrepository.com 网站可以直接复制相关坐标代码

1.4 maven创建maven项目

点击右上角的Project Structure->Modules

改变文件属性右键文件Mark Directory as --

src中   java:Sources   resources:Resources

test中java:Test   resources:Test:Resources

1.5 idea创建web项目

Project->maven->选择SDK和Create from archetype

输入webapp->OK

idea2019.3  无法使用3.8.5   现配置3.6.3

引入spring-context 依赖才有spring config选项

  1.  
    <dependencies>
  2.  
    <dependency>
  3.  
    <groupId>org.springframework</groupId>
  4.  
    <artifactId>spring-context</artifactId>
  5.  
    <version>5.0.2.RELEASE</version>
  6.  
    </dependency>
  7.  
    </dependencies>

构建tomcat,可以通过依赖的方式构建

  1.  
    <!-- 构建tomcat -->
  2.  
    <build>
  3.  
    <!-- 设置插件 -->
  4.  
    <plugins>
  5.  
    <!-- 具体插件位置 -->
  6.  
    <plugin>
  7.  
    <groupId>org.apache.tomcat.maven</groupId>
  8.  
    <artifactId>tomcat7-maven-plugin</artifactId>
  9.  
    <version>2.1</version>
  10.  
    <configuration>
  11.  
    <port>80</port>
  12.  
    <path>/</path>
  13.  
    </configuration>
  14.  
    </plugin>
  15.  
     
  16.  
    </plugins>
  17.  
    </build>
学新通

点击edit configarations,选择maven,点击添加,

name:启动服务器      command line:   tomcat:run        OK

1.6 依赖配置

依赖指当前项目所需的jar,一个项目可以设置多个依赖

  1.  
    <dependencies>
  2.  
    <dependency>
  3.  
    <groupId>log4j</groupId>
  4.  
    <artifactId>log4j</artifactId>
  5.  
    <version>1.2.12</version>
  6.  
    </dependency>
  7.  
    </dependencies>

1.7 依赖管理

1.7.1 依赖传递

依赖具有传递性:

直接依赖:在当前项目中通过依赖配置建立的依赖关系

间接依赖:被资源的资源如果依赖其他资源,当前项目依赖其他资源

项目3的坐标

  1.  
    <groupId>com.it3</groupId>
  2.  
    <artifactId>web01</artifactId>
  3.  
    <version>1.0-SNAPSHOT</version>

在项目2中把项目3的坐标用依赖方式写入就可以了

  1.  
    <dependencies>
  2.  
    <dependency>
  3.  
    <groupId>com.it3</groupId>
  4.  
    <artifactId>web01</artifactId>
  5.  
    <version>1.0-SNAPSHOT</version>
  6.  
    </dependency>
  7.  
    </dependencies>

1.7.2 依赖传递冲突问题

路径优先:当依赖中出现相同的资源是,层级越深,优先级越低,层级越浅,优先级越高

声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的

特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

1.7.3 可选依赖

可选依赖指对外隐藏当前所选依赖的资源---不透明

  1.  
    项目3
  2.  
    <dependency>
  3.  
    <groupId>log4j</groupId>
  4.  
    <artifactId>log4j</artifactId>
  5.  
    <version>1.2.12</version>
  6.  
    <optional>false</optional><!--自己的东西不被别人用,设false 项目3被项目2使用不显示log4j-->
  7.  
    </dependency>

1.7.4 排除依赖

排除依赖指主动断开以来的资源,被排除的资源无需指定版本---不需要

项目2

  1.  
    <dependency>
  2.  
    <groupId>com.it</groupId>
  3.  
    <artifactId>web02</artifactId>
  4.  
    <version>1.0-SNAPSHOT</version>
  5.  
    <exclusions> <!--取其精华去其糟粕,排除项目3中的log4j,主动排除-->
  6.  
    <groupId>log4j</groupId>
  7.  
    <artifactId>log4j</artifactId>
  8.  
    </exclusions>
  9.  
     
  10.  
    </dependency>

1.7.5 依赖范围

依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围

  1. 主程序范围有效(main文件夹范围内)
  2. 测试程序范围有效(test文件夹范围内)
  3. 是否参与打包(package指令范围内)

学新通

  1.  
    <dependency>
  2.  
    <groupId>log4j</groupId>
  3.  
    <artifactId>log4j</artifactId>
  4.  
    <version>1.2.12</version>
  5.  
    <scope>runtime</scope>
  6.  
    </dependency>

学新通

1.8 生命周期与插件

学新通

 Maven对生命周期划分为3套

  • clean:清除工作
    • pre-clean    执行一些需要在clean之前完成的工作
    • clean          移除所有上一次构建生成的文件
    • post-clean  执行一些需要在clean之后立刻完成的工作
  • default:核心工作,例如编译,测试,打包,部署
  • 学新通
  • site产生报告,发布站点
    • 学新通

 插件

学新通

  1.  
    <build>
  2.  
    <plugins>
  3.  
    <plugin>
  4.  
    <!--插件:对源码打jar包-->
  5.  
    <groupId>org.apache.maven.plugins</groupId>
  6.  
    <artifactId>maven-source-plugin</artifactId>
  7.  
    <version>2.2.1</version>
  8.  
    <executions>
  9.  
    <execution>
  10.  
    <goals>
  11.  
    <goal>jar</goal>
  12.  
    <goal>test-jar</goal> <!--对test打-->
  13.  
    </goals>
  14.  
    <phase>generate-test-resources</phase>
  15.  
    </execution>
  16.  
    </executions>
  17.  
    </plugin>
  18.  
    </plugins>
  19.  
    </build>
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcbabf
系列文章
更多 icon
同类精品
更多 icon
继续加载