Maven笔记

Maven是一个Java项目管理和构建工具,它可以定义项目结构、项目依赖,并使用统一的方式进行自动化构建,是Java项目不可缺少的工具。

一个java项目需要依赖包 需要标准的目录格式 还需要配置环境 打包等等

Maven就是是专门为Java项目打造的管理和构建工具

pom.xml为项目描述文件

项目结构

src用于存放源码 java为源码 resource为所需的资源

test则存放测试源码

target存放打包后的所有文件

依赖关系

Maven定义了几种依赖关系,分别是compiletestruntimeprovided

  • compile 编译时需要用到该jar包(默认)

  • test 编译Test时需要用到该jar包

  • runtime 编译时不需要,但运行时需要用到

  • provided 编译时需要用到,但运行时由JDK或某个服务器提供

Maven使用3个变量确定某个jar包:groupId artifactId version

生命周期

Maven的生命周期由一系列阶段(phase)构成,以内置的生命周期default为例,它包含以下phase:

validate
initialize
generate-sources
process-sources
generate-resources
process-resources
compile
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile
process-test-classes
test
prepare-package
package
pre-integration-test
integration-test
post-integration-test
verify
install
deploy

如果我们运行mvn package,Maven就会执行default生命周期,它会从开始一直运行到package这个phase为止

maven还有一个生命周期 clean

pre-clean
clean (注意这个clean不是lifecycle而是phase)
post-clean

所以,我们使用mvn这个命令时,后面的参数是phase,Maven自动根据生命周期运行到指定的phase。

经常用到的phase其实只有几个:

  • clean:清理
  • compile:编译
  • test:运行测试
  • package:打包

通常情况,我们总是执行phase默认绑定的goal,因此不必指定goal。

插件

实际上,执行每个phase,都是通过某个插件(plugin)来执行的,Maven本身其实并不知道如何执行compile,它只是负责找到
对应的compiler插件,然后执行默认的compiler:compile这个goal来完成编译。

所以,使用Maven,实际上就是配置好需要使用的插件,然后通过phase调用它们。

Maven已经内置了一些常用的标准插件:

  • clean
  • compiler
  • surefire
  • jar

maven自带的插件无需声明 其他插件则需要配置 如

  • maven-shade-plugin:打包所有依赖包并生成可执行jar;
  • cobertura-maven-plugin:生成单元测试覆盖率报告;
  • findbugs-maven-plugin:对Java源码进行静态分析以找出潜在问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值