当前位置: 移动技术网 > IT编程>开发语言>Java > Maven学习总结(禁止转载)

Maven学习总结(禁止转载)

2020年01月01日  | 移动技术网IT编程  | 我要评论
1. Maven综述与拓展概念准备 Maven起源:生产环境下开发不再是一个项目一个工程,而是每一个模块创建一个工程, 而多个模块整合在一起就需要使用到像 Maven 这样的构建工具。 Maven定义:一个自动化构建工具 Maven简介:Maven是Apache软件基金会组织维护的一款自动化构建工具 ...

 

1. maven综述与拓展概念准备

maven起源:生产环境下开发不再是一个项目一个工程,而是每一个模块创建一个工程, 而多个模块整合在一起就需要使用到像 maven 这样的构建工具。

maven定义:一个自动化构建工具

maven简介:mavenapache软件基金会组织维护的一款自动化构建工具,专注服务于java平台的项目构建和依赖管理。

构建:构建就是以我们编写的 java 代码、框架配置文件、 国际化等其他资源文件、 jsp

面和图片等静态资源作为“原材料”, 去“生产”出一个可以运行的项目的过程。

2. maven核心概念

2.1 pom

project object model:项目对象模型。将 java 工程的相关信息封装为对象作为便于操作和管理的模型。maven 工程的核心配置。可以说学习 maven 就是学习 pom.xml 文件中的配置。

2.2约定的目录结构

2.3坐标

maven 的坐标
使用如下三个向量在 maven 的仓库中唯一的确定一个 maven 工程。
[1]groupid:公司或组织的域名倒序+当前项目名称
[2]artifactid:当前项目的模块名称
[3]version:当前模块的版本

<groupid>com.atguigu.maven</groupid>
<artifactid>hello</artifactid>
<version>0.0.1-snapshot</version>

 

 

2.4依赖管理

2.4.1依赖概念与配置

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

可以近似理解为jar包的import语句思想。

<dependency>
<groupid>com.atguigu.maven</groupid>
<artifactid>hello</artifactid>
<version>0.0.1-snapshot</version>
<scope>compile</scope>
</dependency>

 

2.4.2依赖的范围

坐标的 scope 设置,是依赖的范围。依赖的范围有几个可选值, 我们用得到的是: compiletestprovided 三个。

compile

test

provided

主程序

×

测试程序

参与部署

×

×

2.4.3依赖的传递性

a 依赖 bb 依赖 ca 能否使用 c 呢? 那要看 b 依赖 c 的范围是不是 compile, 如果是则可用, 否则不可用。

2.4.4依赖的排除

切断依赖的传递性

<dependency>
<groupid>com.atguigu.maven</groupid>
<artifactid>hellofriend</artifactid>
<version>0.0.1-snapshot</version>
<type>jar</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupid>commons-logging</groupid>
<artifactid>commons-logging</artifactid>
</exclusion>
</exclusions>
</dependency>

 

2.4.5统一管理所依赖的jar包版本

[1] 统一声明版本号

<properties>
<atguigu.spring.version>4.1.1.release</atguigu.spring.version>
</properties>

 

[2] 引用前面声明的版本号

<dependencies>
<dependency>
<groupid>org.springframework</groupid>
<artifactid>spring-core</artifactid>
<version>${atguigu.spring.version}</version>

</dependency>

</dependencies>

2.4.6依赖的原则

  1. 最短路径优先
  2. 相同路径先声明优先
  3. 父工程配置

2.4.7在父工程中管理依赖

<dependencymanagement>
<dependencies>
<dependency>
<groupid>junit</groupid>
<artifactid>junit</artifactid>
<version>4.9</version>
<scope>test</scope>

</dependency>
</dependencies>
</dependencymanagement>

 

  1. 子工程配置

<dependencies>
<dependency>
<groupid>junit</groupid>
<artifactid>junit</artifactid>
</dependency>
</dependencies>

 

2.4.8聚合

将多个工程拆分为模块后, 需要手动逐个安装到仓库后依赖才能够生效。 修改源码后也需要逐个手动进行 clean 操作。 而使用了聚合之后就可以批量进行 maven 工程的安装、清理工作。

方法:在总的聚合工程中使用 modules/module 标签组合,指定模块工程的相对路径

<modules>
<module>../hello</module>
<module>../hellofriend</module>
<module>../makefriends</module>
</modules>

2.5仓库管理

本地仓库:为当前本机电脑上的所有 maven 工程服务

远程仓库:私服、中央仓库、中央仓库镜像

 

2.6生命周期

maven 有三套相互独立的生命周期, 分别是:

clean lifecycle 在进行真正的构建之前进行一些清理工作。

default lifecycle 构建的核心部分,编译,测试,打包,安装,部署等等。

site lifecycle 生成项目报告,站点,发布站点。

它们是相互独立的,你可以仅仅调用 clean 来清理工作目录,仅仅调用 site 来生成站点。 当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。运行任何一个阶段的时候,它前面的所有阶段都会被运行

 

2.7插件和目标

maven 的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。

●每个插件都能实现多个功能,每个功能就是一个插件目标。

maven 的生命周期与插件目标相互绑定,以完成某个具体的构建任务。

例如:compile 就是插件 maven-compiler-plugin 的一个目标;

pre-clean 是插件 maven-clean-plugin 的一个目标。

3. 资料与工具准备

3.1资料

尚硅谷java视频教程_maven视频

3.2工具

mvnrepositoryjar包依赖信息搜索):

eclipseee

jdk

maven:

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网