项目管理工具 -- maven(1)

概念

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

用途

1、管理jar包

2、作为集成工具

3、方便测试

4、方便打包

依赖管理

maven工程对jar包的管理过程。

maven 工程中不直接将 jar 包导入到工程中,而是通过在 pom.xml 文件中添加所需 jar 包的坐标,这样就很好的避免了 jar 直接引入进来,在需要用到 jar 包的时候,只要查找 pom.xml 文 件,再通过 pom.xml 文件中的坐标,到一个专门用于”存放 jar 包的仓库”(maven 仓库)中根据坐标从 而找到这些 jar 包,再把这些 jar 包拿去运行。

在这里插入图片描述

maven仓库

maven索引

一键构建

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

tomcat插件

远程tomcat 开启的情况下,使用 tomcat内部manager 程序,进行项目热部署

maven仓库

在这里插入图片描述

访问顺序

在这里插入图片描述

本地仓库

用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包, 优先从本地仓库查找
默认本地仓库位置在 u s e r . d i r / . m 2 / r e p o s i t o r y , {user.dir}/.m2/repository, user.dir/.m2/repository{user.dir}表示windows 用户目录。

远程仓库(私服)

如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。
远程仓库可以在互联网内也可以在局域网内

中央仓库

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

目录结构

代码结构

核心代码部分:jar包

配置文件部分

测试代码部分

测试配置文件

maven项目标准目录结构

src/main/java 目录 :核心代码

src/main/resources目录:配置文件

src/test/java目录:测试代码

src/test/resources目录:测试配置文件

src/main/webapp目录:web工程,界面资源,js,css,图片等

常用命令

mvn compile

compile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下

mvn test

test 是 maven 工程的测试命令 mvn test,会执行src/test/java下的单元测试类。

mvn clean

clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。

mvn package

package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于web 工程打成war 包。

mvn install

install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库

生命周期

清理生命周期(Clean Lifecycle ):
清除 clean(清除项目编译信息)

默认生命周期(Default Lifecycle ):
编译 compile
测试 test
打包 package
安装 install
发布 deploy(需要先做配置)

后面命令执行时会将前面的命令执行一次

站点生命周期(Site Lifecycle ):

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

项目模型

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

项目对象模型

一个 maven 工程都有一个 pom.xml 文件,通过 pom.xml 文件定义项目的坐标、项目依赖、项目信息、 插件目标等。

1)项目自身信息
2)项目运行依赖的jar包信息
3)项目运行环境信息,例如jdk,tomcat信息

依赖管理系统

通过 maven 的依赖管理对项目所依赖的 jar 包进行统一管理
在这里插入图片描述

<!-- 依赖关系 -->  
	<dependencies>   
	<!-- 此项目运行使用 junit,所以此项目依赖 junit -->   
		<dependency>    
		<!-- junit 的项目名称 --> 
		   <groupId>junit</groupId>    
		   <!-- junit 的模块名称 -->
		   <artifactId>junit</artifactId>    
		   <!-- junit 版本 -->    
		   <version>4.9</version>    
		   <!-- 依赖范围:单元测试时使用 junit -->    
		   <scope>test</scope>   
    </dependency> 

生命周期(Project Lifecycle)

使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些 过程规范为一个生命周期
在这里插入图片描述

插件(plugin)目标(goal)

maven 管理项目生命周期过程都是基于插件完成的。

标准集合

maven将整个项目管理过程定义一组标准,比如:通过 maven 构建工程有标准的目录结构,有 标准的生命周期阶段、依赖管理有标准的坐标定义等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值