maven生命周期和仓库

Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。主要用来管理java项目,进行依赖管理(jar包依赖管理)和项目构建(项目编译、打包、测试、部署)。

此外还可以分模块开发(聚合项目,父项目里有许多子项目),提高开发效率。

一、maven生命周期

maven中pom.xml会引入这样的一个标签:<plugin><plugin>插件标签

<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>

不同的插件结合起来,就可以完成整个项目的构建 ,其中项目的构建环节就对应lifecycle生命周期。 lifecycle:

clean

项目编译后,可以通过clean清楚target包

validate

验证项目是否正确,所需要的信息是否完整

compile

编译后,会产生一个target包,其中有一个class文件

test

做单元测试

package

将项目打包,保存在target下

verify

集成测试,检查package是否有效,符合标准

install

将项目打包,保存在target下,还会保存在本地仓库

deploy

将项目打包,保存在target下,保存在本地仓库,还会保存到私服

site

生成项目的站点文档

二、maven仓库

maven仓库时存储依赖的地方,体现形式是本地的一个目录。

仓库中不仅存放着依赖,而且管理着每个依赖的唯一坐标GAV,Java项目可以凭坐标获取依赖。

GroupId

通常写com.XXX

ArtifactId

项目名

Version

版本

仓库分类:分为本地仓库和远程仓库:

本地仓库即在本地磁盘中的maven仓库;

远程仓库:1.中央仓库:maven社区提供的仓库

2.公共仓库:国内的公共仓库(镜像)

3.私服:公司范围内共享的仓库

三、依赖生命周期

compile

缺省值(默认值)适用于测试、编译、运行、打包阶段

provided

与compile有些类似,期望JDK、容器或使用者会提供这个依赖。如servlet-api.jar;适用于测试,编译阶段

runtime

只在运行时使用,适用于运行,测试阶段,如 mysql的驱动jar

test

只在测试时使用,适用于编译,测试阶段,如 junit.jar

system

Maven不会在仓库中查找对应的依赖,会在本地磁盘目录中查找;适用于编译,测试,运行阶段

<scope>compile</scope>
<scope>provided</scope>
<scope>runtime</scope>
<scope>test</scope>
<scope>system</scope>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值