Maven学习笔记

Maven是概念

概念

Maven是一款服务于Java平台的自动化构建工具

构建

  • 概念:从java源代码,jsp文件,图片,css,js文件开始生成一个可运行的软件包的过程。
  • 步骤
    • 清理
    • 编译
    • 测试
    • 打包
    • 安装
    • 部署

2、Maven安装

下载

http://maven.apache.org/download.cgi

安装

  • 插件依赖JAVA_HOME环境变量,需要配置
  • 解压文件
  • 配置maven环境变量
  • 安装后使用 mvn -v查看是否安装成功。

3、创建一个maven项目

使用命令创建

mvn-Barchetype:generate-DarchetypeGroupId=org.apache.maven.archetypes-DgroupId=com.cc.maven -DartifactId=maven-helloword

IDEA集成maven

  1. file->setting 搜索maven(或者直接查找Build Tools->maven)

  2. 按照自己的maven配置,图片为我的配置。

    1563126250767

3.file->new->module->maven设置GroupId和AtifactId后下一步即可

maven编译项目

mvn package

maven打包项目

mvn package

maven常用命令

mvnclean:清理

mvncompile:编译主程序

mvntest-compile:编译测试程序

mvntest:执行测试

mvnpackage:打包

mvninstall:安装jar到本地仓库

POM

ProjectObjectModel(项目对象模型),将Java工程的相关信息封装为对象,作为便于操作和管理的模型。

Maven工程的核心配置。

仓库

  1. 仓库废物本地仓库、远程仓库、中央仓库、私服、仓库镜像
  2. 仓库中的文件
    • Maven自身需要的插件
    • 第三方框架或工具的jar包
    • 我们自己开发的jar包

maven中的坐标

通过groupid,artifactid,version确定需要依赖的jar包

依赖

  • 依赖是Maven中最关键的部分,我们使用Maven主要就是使用它的依赖管理功能

  • maven中使用dependencies包裹的dependency添加依赖

<dependencies>
	<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.7.RELEASE</version>
    </dependency>
</dependencies>
  • 依赖的范围
    1. Compile(默认)
      • 对主程序是否有效:有效
      • 对测试程序是否有效:有效
      • 是否参与打包:参与
    2. Test
      • 对主程序是否有效:无效
      • 对测试程序是否有效:有效
      • 是否参与打包:不参与(junit)
    3. Provided
      • 对主程序是否有效:有效
      • 对测试程序是否有效:有效
      • 是否参与打包:不参与
      • 是否参与部署:不参与
  • 依赖的原则
    • 路径最短者优先
    • 路径相同则先声明者优先
  • 统一的版本声明
<properties>
<spring.version>5.0.7.RELEASE</spring.version>
</properties>
<dependencies>
	<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
</dependencies>

4、maven的生命周期

Clean生命周期(三个phase(阶段))

  • pre-clean:执行一些需要在clean之前完成的准备工作
  • clean:移除上一次构建生成的问题件
  • post-clean:执行一些需要在clean之后需要完成的工作。

Site生命周期

  • pre-site,
  • site
  • post-site
  • site-deploy

5、Maven继承机制

为什么需要继承机制?

由于非compile范围的依赖信息是不能在“依赖链”中进行传递的,所以有需要的工程只能去单独去配置,如果项目

需要将各个模块的非comipie范围的依赖(junit)进行统一的版本管理,那么需要使用继承机制来将依赖信息统一

提取到父工程中进行统一管理。

使用步骤

  1. 建立父工程:跟普通的javamaven工程一样,只是打包方式需要设置为pom
  2. 添加依赖管理
  3. 在子工程中引入父工程
  4. 在子工程中添加依赖
  5. 子工程中依赖的版本信息不需要添加,统一在父工程管理。
posted @ 2019-07-15 02:17  MNxchao  阅读(135)  评论(0编辑  收藏  举报