您现在的位置是:首页 >技术教程 > Maven介绍以及idea构建一个Maven工程网站首页技术教程

Maven介绍以及idea构建一个Maven工程

无糖scidag 2025-02-18 00:01:03
简介 Maven介绍以及idea构建一个Maven工程

1.Maven简介

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

POM 项目对象模型

2.Maven作用
  • 项目构建,提供标准的,跨平台的自动化项目构建方式

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

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

3.基础概念
  • 仓库:用于存储资源,包含各种jar包

  • 坐标:Maven中单坐标用于描述仓库中资源的位置 识别资源,让Maven可以根据组织,项目,版本 找到资源下载

4.Maven项目构建命令
  • mvn compile #编译'

  • mvn clean #清理

  • mvn test #测试

  • mvn package # 打包

  • mvn install #安装到本地仓库

5.依赖管理
  • 依赖具有传递性

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

  • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源(禁止套娃 (—_—!))

依赖传递的冲突问题 :自己的直接依赖与间接依赖里面存在相同的依赖时候用谁的依赖版本?(路径优先)如果两个间接依赖中(同级)有两个相同的依赖(同级)那么又用谁呢?(声明优先)

  • 层级划分:直接依赖为1级,直接依赖的依赖为2级,依次往后类推

  • 路径优先:当依赖中出现相同的资源时,层级越深(级别数越大),优先级越低,层级越浅,优先级越高

  • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的(父级依赖的配置在pom.xml文件位置)

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

  • 可选依赖

  • 可选依赖指对外隐藏当前所依赖的资源——不透明(<optional>true</optional>)

<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
   <optional>true</optional>
</dependency>
  • 排除依赖

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

<dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.13.2</version>//排斥junit依赖下的org.hamcrest依赖
   <exclusions>
     <exclusion>
       <groupId>org.hamcrest</groupId>
       <artifactId>hamcrest</artifactId>
     </exclusion>
   </exclusions>
  </dependency>
  • 小结

  • 可选依赖是依赖资源还存在还可以用只是看不见了,而排除依赖是直接不连接依赖资源了该依赖不可用了

  • 依赖范围

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

  • 作用范围

  • 主程序范围有效(main文件夹范围)

  • 测试程序范围有效(test文件夹范围)

  • 是否参与打包(package指令范围内)

  • scope主代码测试代码打包范例compile(默认)YYYlog4jtestYjunitprovidedYYservlet-apiruntimeYjdbc

  • 依赖范围的传递性

  • 带有依赖范围的资源在进行传递时,作用范围将受到影响

  • 间接依赖直接依赖compiletestprovidedruntimecompilecompiletestprovidedruntimetestprovidedruntimeruntimetestprovidedruntime

6.生命周期与插件
  • Maven构建生命周期描述的是一次构建过程经历了多少个事件

compile
test-compile
test
package
install
  • Maven对项目构建的生命周期划分为3套

  • clean:清理工作

  • default:核心工作,例如编译,打包,部署等

  • site:产生报告,发布站点等

  • 插件

  • 插件与生命周期内的阶段绑定,在执行到对应的生命周期时执行对应的插件

  • 默认maven在各个生命周期上绑定有预设的功能

  • 通过插件可以定义其他的功能。

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>3.0.0</version>
      <executions>
        <execution>
          <goals>
            <goal>jar</goal>
          </goals>
          <phase>generate-test-resources</phase>
        </execution>
      </executions>
    </plugin>

7.如何构建一个maven工程
  1.   首先新建一个project 
  2. 在project中新建模块在Build system 中选择maven
  3. 在这个位置可以设置属组名和项目名
  4. 这就是创建好的
  5. 在这里设置maven生成时的一些配置属性,和仓库位置
  6. 这就是maven工程的基本结
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。