Maven仓库 和生命周期
来源:互联网 发布:java外包公司 编辑:程序博客网 时间:2024/06/05 05:28
对于maven来说,仓库分为:本地仓库和远程仓库。
当maven根据坐标寻找构建时,会首先查看本地仓库,存在则直接使用,如果本地仓库不存在此构件,或者需要最新版本时,maven就会去远程仓库查找,发现需要的构建之后,下载到本地仓库使用。
安装好maven后,如果不执行任何maven命令,本地仓库目录是不存在的。当用户输入第一条maven命令后,maven才会创建本地仓库,然后根据需要和配置,下载构件到本地仓库。
Maven的安装文件自带了中央仓库的配置。jar文件路径:lib/maven-model-builder-3.3.9.jar文件。然后范围路径:maven-model-builder-3.3.9.jar\org\apache\maven\model\pom-4.0.0.xml中,会看到如下配置:
<repositories> <repository> <id>central</id> <name>Central Repository</name> <url>https://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
这段配置文件是所有maven项目都会继承的超级pom。
Maven生命周期
maven生命周期包括:项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等步骤。
maven的生命周期是抽象的,生命周期本身不做任何实际的工作。实际的任务由插件完成。每个构建步骤都可以绑定一个或者多个插件行为,而且maven为大多数构建步骤编写并绑定了默认插件。比如,编译的插件maven-compiler-plugin;测试的插件:maven-surefire-plugin。
Maven拥有三套相互独立的生命周期,分别是:
clean生命周期:清理项目
default生命周期:构建项目
site生命周期:建立项目站点
每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和maven最直接的交互方式就是调用这些生命周期阶段。
三套生命周期相互独立。可以单独调用某个生命周期的某个阶段,而不会对其他生命周期产生影响。
clean生命周期
包含三个阶段:
1、pre-clean:执行清理前需要完成的工作
2、clean:清理上一次构建产生的文件
3、post-clean:执行一些清理后需要完成的工作
default生命周期
定义了真正构建时所需要执行的所有步骤,包含的阶段如下:
1、validate
2、initialize
3、generate-sources
4、process-sources:处理项目主资源文件
5、generate-resources
6、process-resources
7、compile:编译项目的主源码,
8、process-classes
9、generate-test-sources
10、process-test-sources:处理项目测试资源文件
11、generate-test-resources
12、process–test-resources
13、test-compile:编译项目的测试代码
14、process-test-classes
15、test:使用单元测试框架运行测试
16、prepare-package
17、package:接受编译好的代码打包成可发布的格式。
18、pre-integration-test
19、integration-test
20、post-integration-test
21、verify
22、install:将包安装到本地仓库
23、deploy:将最终的包复制到远程仓库。
site生命周期
1、pre-site
2、site:生产项目站点文档
3、post-site
4、site-deploy:将生产的项目站点发布到服务器上。
以上各个生命周期是相互独立的,而一个生命周期的阶段是有前后依赖关系的。
例如:执行mvn test:该命令调用default生命周期的test阶段。实际执行的生命周期是validate、initialize等,直到test的所有阶段。
执行mvn clean install:该命令调用clean生命周期的clean阶段和default生命周期的install阶段。该命令结合两个生命周期。
插件
一个插件里聚集很多目标,而每个目标就是一个功能。例如:dependency:analyze。冒号前是插件前缀,后面是插件目标。
maven的生命周期与插件相互绑定,用以完成实际的构建任务。具体而言,就是生命周期的阶段与插件的目标项目绑定。
maven会在每个生命周期的某个阶段内置一些插件。有些阶段没有绑定任何插件,也就没有任何实际行为。
- Maven仓库 和生命周期
- maven仓库说明和maven生命周期
- Maven中的坐标,仓库,插件和生命周期
- Maven仓库-本地仓库和远程仓库
- 【Maven】依赖和仓库
- Maven坐标和仓库
- maven 坐标和仓库
- 【JavaWeb-28】Maven仓库、目录结构、命令和生命周期、添加jar包和插件
- maven学习笔记(2)--核心概念:依赖、仓库、生命周期和插件
- maven的本地仓库和中央仓库
- 常用Maven仓库和仓库管理器
- maven远程仓库和本地仓库配置
- Maven-生命周期和插件
- Maven生命周期和插件
- Maven生命周期和插件
- maven生命周期和插件
- Maven生命周期和插件
- maven 插件和生命周期
- 存储双活:怎样拥抱业务集群和虚拟机
- Codeforces Round #398 (Div. 2) E. Change-free(想法题,贪心,好题)
- 【Linux基础学习之二】关于Linux的一些基本命令(ls命令、cd命令、mv命令、cp命令…)
- 读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式
- MySql优化之索引
- Maven仓库 和生命周期
- POJ 3211 Washing Clothes 可能会
- 【Linux基础学习之三】Bash的一些基础知识总结(通配符、重定向、管道、命令补全)
- Python VS Java
- 搜索--九度1456.[BFS]
- mysql常用函数笔记
- 章节号对应的翻译
- R-QQ聊天记录分析练习
- 【Linux基础学习之四】文件系统的基础知识总结(主要目录结构、文件类型、mount、硬连接)