课程笔记:《Maven基础篇之Maven实战》

课程来源:动力节点《Maven基础篇之Maven实战》


一、Maven简介

传统开发项目的问题:

  1. 模块之间关系的管理
  2. 第三方功能的的管理
  3. 管理jar包的版本
  4. 管理jar文件之间的依赖

使用Maven:

  1. 管理jar文件
  2. 自动下载jar和相关的文档、源代码
  3. 管理jar直接的依赖
  4. 管理jar的版本
  5. 编译程序
  6. 测试
  7. 打包成jar或者war
  8. 部署项目

构建是项目的构建,构建是面向过程的,就是一些步骤,完成项目代码的编译、测试、运行、打包、部署,maven支持的构建包括有:

  1. 清理:把之前项目编译的东西删除掉,为新的编译代码做准备
  2. 编译:源代码编译为执行代码
  3. 测试:执行测试程序代码
  4. 报告:生成测试结果的文件,测试通过没有
  5. 打包:把项目中的所有class文件,配置文件等所有资源放到一个压缩文件中
  6. 安装:把5中生成的jar,war安装到本机仓库
  7. 部署:把程序安装好可以执行

二、Maven的核心概念

POM

project object model

maven把一个项目当作一个模型使用

基本信息

  1. modelVersion:maven模型的版本
  2. groupId:组织id,一般是公司域名的倒写,或者域名倒写+项目名
  3. artifactId:项目名称,也是模块名称
  4. version:项目的版本号,如果项目还在开发中,是不稳定版本,通常在版本后带-SNAPSHOT
  5. packaging:项目打包的类型,可以使用jar、war等,默认为jar
  6. dependencies和dependency:依赖
  7. properties:配置属性
  8. build:表示与构建相关的配置,例如设置编译插件的jdk版本
  9. parent:在maven中,如果多个模块都需要生命相同的配置,例如:groupId、version、有相同的依赖,或者相同的组件配置等,也有类似Java的继承机制,用parent生命要继承的父工程的pom配置
    10.modules

约定的目录结构

maven项目的目录和文件的位置都是规定的

Hello
|—src
|—|---main
|—|---|—java
|—|---|—resources
|—|---test(单元测试)
|—|---|—java
|—|---|—resources
|—target(编译后生成class文件)
|—pom.xml

坐标

唯一的字符串,用来表示资源的

<groupId></groupId>
<artifactId></artifactId>
<version></version>

依赖管理

管理项目中可以使用的jar文件

仓库管理

资源存放的位置,分本地仓库、远程仓库、私服

私服:在公司内部,在局域网中使用的仓库

使用jar包时,先查本地仓库,再查私服,再查镜像,最后查中央仓库

生命周期

maven工具构建项目的过程

插件和目标

执行maven构建的时候用的工具是插件,就是一些jar文件

常用命令

  1. mvn clean:清理,会删除原来编译和测试的目录,即target目录,但是已经install到仓库里的包不会删除
  2. mvn compile:编译主程序
  3. mvn test-compile:编译测试程序
  4. mvn test:测试,会生成一个目录surefire-reports,保存测试结果
  5. mvn package:打包主程序,会编译、编译测试、测试、并且按照pom.xml配置把主程序打包生成jar包或者war包
  6. mvn install:安装主程序,会把本工程打包,并且按照本工程的坐标保存在本地仓库中
  7. mvn deploy:部署主程序,会把本工程打包,按照本工程的坐标保存在本地仓库中,并且还会保存到私服仓库中,还会自动把项目部署到web容器中

注意:执行以上命令必须在pom.xml所在目录

插件配置

<build>
	<plugins>
		<plugin>
			<groupId></groupId>
			<artifactId></artifactId>
			<version></version>
		</plugin>
	</pulgins>
</build>

三、Maven在Idea中的使用

使用模版创建项目

  1. maven-archetype-quickstart:普通的Java项目
  2. maven-archetype-webapp:web工程

pom.xml右键reimport,刷新导入

右键文件夹Mark as

四、依赖管理

依赖范围:使用scope表示,值有compile、test、provided,默认是compile,表示构建使用的范围,也就是在maven构建项目中的那些阶段中起作用

compiletestprovided
对主程序是否有效
对测试程序是否有效
是否参与打包
是否参与部署

五、Maven常用设置

  1. 属性设置

    <properties></properties>
    
  2. 自定义全局变量

    <properties>中定义,${}使用

  3. 资源插件

    默认没有使用 resources 的时候,maven 执行编译代码时,会把 resources 文件中的配置文件拷贝到 target/classes 中,对于 src/main/java 目录下的非 java 文件不处理,不拷贝到 target/classes 目录中

    有时程序需要把一些文件放在 src/main/java 中,执行 java 程序时,需要用到 src/main/java 目录中的文件。需要告诉 maven 在mvn compile src/main/java 目录下的程序时,需要把文件一同拷贝到 target/classes 目录中,此时就需要在<build>中加入<resources>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值