maven简介


概述

maven是一款项目管理工具,对Java进行构建,依赖管理

作用

  1. 依赖管理(解决jar包冲突)
  2. 项目构建(一键完成 编译,打包,部署,发布等操作)

环境搭建

  • 安装:
    直接解压即可
    注意:目录中不要有中文和空格
  • 环境变量:
    创建MAVEN_HOME,路径配置maven的根目录。
    在系统变量的path变量中添加 %MAVEN_HOME%\bin
  • 测试:
    cmd中输入:mvn -v输出版本信息即为环境搭建成功

仓库

本地仓库(本地的仓库)
远程仓库[私服])(公司搭建的仓库)
中央仓库(maven搭建的仓库,在国外)->可以使用阿里的仓库

  • 项目中需要的依赖,会先从本地仓库去找,如果本地仓库没有,在联网的情况下, 会从中央仓库去下载。
  • 在公司一般配有自己的远程仓库,当我们和远程仓库处于同一个局域网时,如果 本地仓库没有依赖,会先从远程仓库去找,如果远程仓库没有,远程仓库会从中央 仓库去下载

目录结构

bin 可执行的二进制文件。mvn指令
boot maven自身需要的一个文件。
conf\settings.xml maven的配置文件
lib maven运行自身需要的一些jar包。

本地仓库

<localRepository>本地仓库路径</localRepository>

项目结构介绍

普通java项目

  • src
    • main
      • java Java源代码
      • resources 项目资源,如property文件,xml文件等
    • test 测试代码
      • java 项目测试(junit)
      • resources 测试用的资源
  • target 打包输出目录
    • classes 编译输出目录
    • test-classes 测试编译输出目录
  • pom.xml 项目的信息和jar包的信息和插件的信息

web项目

  • src
    • main
      • java Java源代码
      • resources 项目资源,如property文件,xml文件等
      • webapp
        • WEB-INF web应用文件目录,图片,页面等
    • test 测试代码
      • java 项目测试(junit)
      • resources 测试用的资源
  • target 打包输出目录
    • classes 编译输出目录
    • test-classes 测试编译输出目录
  • pom.xml 项目的信息和jar包的信息和插件的信息

常用命令

clean
compile
test
package
install
deploy

6.常用的maven命令
clean:清理。把生成的字节码文件删除。
compile:编译。可以把src/main/java文件编译为字节码文件
test:测试。可以把src/test/java文件编译为字节码文件。
package:打包。可以把代码进行打包。
普通java项目打成jar包。可以提供给别人使用。
web项目打成war包。部署在服务器上。
可以在pom.xml文件中指定项目的打包方式。
install:安装。可以将打好的jar包复制到本地仓库中。
deploy:部署。帮我们把web项目的war包部署到服务器中。
7.maven的声明周期
maven对项目进行构建过程分为三套独立的生命周期。
清理周期:clean
默认周期:compile test package install deploy
站点生命周期:生成项目报告,站点,发布站点。
8.maven概念模型
1.通过 pom.xml 文件定义项目的坐标、项目依赖、项目信息、插件目标
2.依赖管理系统。通过 maven 的依赖管理对项目所依赖的 jar 包进行统一管理。
9.pom文件介绍:
com.deyuan.maven – 项目组名称
maven-helloworld – 项目名称
0.0.1-SNAPSHOT – 版本
war – 打包方式

dependencies : 里面是项目所需要的依赖坐标。
build:可以在此标签中给项目添加插件信息。

三、idea中配置maven环境
在Runner的VM options:
-DarchetypeCatalog=internal
创建普通java项目不建议使用骨架。
创建web项目建议使用骨架。webapp
jar包坐标:
https://mvnrepository.com/
:依赖范围
compile:编译期,测试期,运行时都生效 例如:spring-core
test:测试期生效 例如:junit
provided:编译期,测试期有效 例如:servlet
runtime:测试期,运行时生效 例如:JDBC
system:编译期,测试期有效 本地的,maven仓库之外的类库

依赖范围由强到弱的顺序是:compile>provided>runtime>test

2.插件


org.apache.maven.plugins
maven-compiler-plugin

1.8
1.8
utf-8

org.apache.tomcat.maven tomcat7-maven-plugin 2.2 8082 /

POM

Project Object Model 项目对象模型
是 Maven 工程的基本工作单元,一个XML文件,包含项目的基本信息,用于描述项目构建,声明项目依赖等

支持的配置

  • 项目依赖
  • 插件
  • 执行目标
  • 项目构建profile
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

pom.xml配置信息:

<!-- 根标签 -->
<project>
<!-- 模型版本 -->
<modelVersion>4.15</modelVersion>
<!-- 公司或组织的标志 -->
<groupId>com.dy.zrh</groupId>
<!-- 项目唯一Id 一个groupId下可能有多个项目,依靠artifactId来区分 -->
<artifactId>test</artifactId>
<!-- 版本号 -->
<version></version>
</project>

生命周期

验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
编译 compile 执行编译 源代码编译在此阶段完成
测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程


文章作者: zrh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zrh !
  目录