java maven项目管理工具的介绍
-
what 是什么
构建工具
依赖管理工具
项目信息聚合工具
-
why 为什么
因为maven是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个*信息片断能管理一个项目的构建、报告和文档等步骤。
-
目录结构
-
斜体样式
└─src 源码 ├─main 主要 │ ├─java java源码 │ │ └─com │ │ └─woniuxy │ │ └─build 包名 │ └─resources 资源: 配置文件 └─test 测试相关 └─java └─com └─woniuxy └─build pom.xml
-
src:该目录主要存放的是项目的源代码文件。
mian:该目录下存放的是该项目的主要代码文件,下面有三个文件夹,分别用来存放:
Java:该目录用来存放Java的源代码文件
resources:该目录主要用来存放项目的一些配置文件(比如spring的xml配置文件)。
webapp:该目录相当于web项目下webcontent的目录,用来存放js、jsp、web.xml等文件.
test:该目录用来存放项目的测试文件
Java:该目录主要存放该项目的测试所用的Java源代码。
resources:该目录存放测试使用的资源文件。
target:该目录是项目编译后产生的一个目录,主要存放的是编译后的.class文件。
pom.xml:该文件是Maven项目的核心配置文件,配置jar包的坐标信息。
-
生命周期
1、 cleanLifeCycle:清理生命周期
2、defaultLifeCycle:默认生命周期
校验-初始化-编译-测试-打包-集成测试-安装-部署
validate-initialize-compile-test-package-integrationTest-install-deploy
3、siteLifeCycle:站点生命周期
-
坐标
groupId:定义当前maven项目隶属的实际项目。maven项目和实际项目可能不是一对一的关系。
artifactId:该元素定义实际项目的一个maven项目(模块),推荐的做法是使用实际项目的名称作为artifactId前缀。
version:定义maven项目当前所处的版本。maven定义了一整套完成的版本规范,以及快照的概念。
packaging:定义maven项目的打包方式。打包方式通常与所生成构件的文件扩展名对应,比如jar,war;打包方式会影响构建的生命周期。
classfier:帮助定义构建输出的一些附属构件。附属构件与主构件对应,比如通常jar包会存在javadoc, sources等附属jar包,这些附属组件也有着唯一的坐标。
在上述5个元素中,groupId, artifactId, version是必选的,packaging是可选的,classfier是不能直接定义的。
-
依赖传递
我们的工程,所使用的大多数情况下,不会只有一成依赖关系,例如 a依赖b,我们用a->b表示,那 么,a->b,b->c,则a对于b是第一依赖,b对于c是第二依赖,而a对于c是传递性依赖
传递性依赖的scope传递规则,与第一依赖和第二依赖有关,下表第一列表示第一依赖,第一行表 示第二依赖
compile | test | provided | runtime | |
---|---|---|---|---|
compile | compile | runtime | ||
test | test | test | ||
provided | provided | provided | provided | |
runtime | runtie | runtime |
从上表我们可以轻松得到几点信息
- 第二依赖为complie不改变第一依赖
- 第二依赖test不传递依赖
- 第二依赖provided只传递provided
- 第二依赖runtime对compile第一依赖的传递依赖是runtime
- 仓库
本地仓库(local)->私服镜像(aliyun)->*仓库central
-
常用命令
1、clean 命令
该命令用来对Maven项目进行清理,会清除target目录,相当于将项目编译后的文件删除。如图,可以看到他对target目录进行了删除。
2、compile 命令
该命令用来对项目进行编译,编译后就会再次生成target目录
3、test命令
该命令用来进行测试,必须要编写测试类才可以,并且该测试类的类名必须是 XxxTest.java才可以。运行该命令后会运行所有的测试。
4、package命令
该命令用来对项目进行打包。如果你的项目是一个web工程会打包成一个war包,如果是一个Java工程就会打成一个jar包
5、install 命令
如果本地多个项目使用到这个项目,则可以通过该命令将此项目打成一个jar包,然后发布到Maven仓库中,供其他项目使用
本文地址:https://blog.csdn.net/qq_45913915/article/details/107899338
推荐阅读
-
Java Web项目中连接Access数据库的配置方法
-
eclipse如何clean? java项目进行clean的技巧
-
参与国际化项目需遵循的java命名规范
-
Java--IDEA创建多服务模块的SpringCloud微服务项目
-
JAVA maven项目使用钉钉SDK获取token、用户
-
Java 内部类的简单介绍
-
简单介绍Python的Django框架的dj-scaffold项目
-
谈一谈个人利用Java的mysql的知识完成的数据库的项目-----用户信息管理系统
-
JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
-
使用PHP把HTML生成PDF文件的几个开源项目介绍