欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java maven项目管理工具的介绍

程序员文章站 2022-07-10 18:43:07
what 是什么构建工具依赖管理工具项目信息聚合工具why 为什么因为maven是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个*信息片断能管理一个项目的构建、报告和文档等步骤。目录结构斜体样式└─src 源码 ├─main 主要 │ ├─java java源码.....
  • 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