maven

一、 maven介绍

1、什么是maven?

Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑

2、maven的作用?

(1)maven的依赖管理

maven 工程中不直接将 jar 包导入到工程中,而是通过在 pom.xml 文件中添加所需 jar包的座标

(2)项目的一键构建

我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。

一键构建 指的是整个构建过程,使用 maven 一个命令可以轻松完成整个工作。

 

二、 maven仓库

1、maven仓库的分类

(1)本地仓库

(2)远程仓库(私服)

(3)中央仓库:在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中 央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件

2、maven工程的认识

三、 maven常用命令

1、compile(编译命令)

mvn compile 作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下

2、test(测试命令)

mvn test 会执行 src/test/java 下的单元测试类

3、clean(清理命令)

mvn clean 作用会删除 target 目录及内容

4、package(打包命令)

mvn package  对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war 包

5、install(安装命令)

mvn install 将 maven 打成 jar 包或 war 包发布到本地仓库【 从运行结果中,可以看出: 当后面的命令执行时,前面的操作过程也都会自动执行 】

6、deploy

mvn deploy 将 maven 打成 jar 包或 war 包并上传到私服

四、 pom

1、座标的书写规则

groupId包名

artifactId 项目名或模块名

version 版本号

2、如何添加座标

(1)从互联网搜索

https://search.maven.org/

https://mvnrepository.com/

(2)去项目所在私服查

(3)在本地仓库搜索

3、pom基本配置

<project > :文件的根节点 .

<modelversion > : pom.xml 使用的对象模型版本

<groupId > :包名

<artifactId > :项目名或模块名

<version > :产品的版本号 

<packaging > :打包类型,一般有 jar、war、pom 等【jar:执行 package 会打成 jar 包war:执行 package 会打成 war 包pom :用于 maven 工程的继承,通常父工程设置为 pom】

<name > :项目的显示名,常用于 Maven 生成的文档。

<description > :项目描述,常用于 Maven 生成的文档

<dependencies> :项目依赖构件配置,配置项目依赖构件的座标

<build> :项目构建配置,配置编译、运行插件等。

4、依赖范围

5、依赖传递

依赖范围对传递依赖的影响

是因为没有 junit.jar 引起的!为什么会这样呢?我们 ssm_dao 模块中有 junit 依赖而

ssm_service 模块依赖了 ssm_dao,难道 junit 不应该传递过来吗?

ssm_dao 依赖 junit,scop 为 test

ssm_service 依赖 ssm_dao

6、依赖冲突的解决

排除依赖

<dependency>

    <groupId>com.pt.poseidon.cache</groupId>

    <artifactId>poseidon-cache</artifactId>

    <version>1.0.0</version>

    <exclusions>

        <exclusion>

            <groupId>org.slf4j</groupId>

            <artifactId>slf4j-log4j12</artifactId>

          </exclusion>

    </exclusions>

</dependency>

五、 分模块构建工程

什么是继承?

将重复的配置提取出来在父工程的 pom.xml 中定义

什么是聚合?

项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web 三个工程最终会打一个独立的 war 运行。

六、maven私服

1、什么是私服?

公司在自己的局域网内搭建自己的远程仓库服务器,称为私服,私服服务器即是公司内

部的 maven 远程仓库,

2、仓库类型

【1】 hosted,宿主仓库,部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部

分,Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库

【2】 proxy,代理仓库,用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私

服自动去中央仓库下载 jar 包或者插件。

【3】group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓

库组。

【5】virtual(虚拟):兼容 Maven1 版本的 jar 或者插件

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章