Maven 入门知识
来源:互联网 发布:路由器网络很慢怎么办 编辑:程序博客网 时间:2024/06/05 14:13
生命周期:
Maven有三套相互独立的生命周期,Clean Lifecycle 在进行真正的构建之前进行一些清理工作,Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等,Site Lifecycle 生成项目报告,站点,发布站点。其中每个生命周期又分n个阶段.
阶段(phase):
每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段。比如,运行mvn package,这个的package是Defalut生命周期的一个阶段。
Clean生命周期一共包含了三个阶段: pre-clean 执行一些需要在clean之前完成的工作, clean 移除所有上一次构建生成的文件, post-clean 执行一些需要在clean之后立刻完成的工作 Site生命周期的各个阶段: pre-site 执行一些需要在生成站点文档之前完成的工作 site 生成项目的站点文档 post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 site-deploy 将生成的站点文档部署到特定的服务器上 最重要的Default生命周期 validate generate-sources process-sources generate-resources process-resources 复制并处理资源文件,至目标目录,准备打包。 compile 编译项目的源代码。 process-classes generate-test-sources process-test-sources generate-test-resources process-test-resources 复制并处理资源文件,至目标测试目录。 test-compile 编译测试源代码 process-test-classes test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。 prepare-package package 接受编译好的代码,打包成可发布的格式,如 JAR 。 pre-integration-test integration-test post-integration-test verify install 将包安装至本地仓库,以让其它项目依赖。 deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
请记住maven的生命周期是抽像的,phase也是,通过phase和插件的target进行绑定,phase才有意义,比如:default的生命周期的compile phase和插件maven-compiler-plugin的compile目标(goal)进行绑定就可以完代码在编译phase做编译task。
插件和插件目标:
maven的核心仅仅定定义了抽像的生命周期,具体的任务都是交给插件完在的,插件以独立的构件形式存在,对于插件本身为了能够复用代码,往往能够完成多个任务,例如:maven-dependency-plugin能够基于项目依赖做很多事情,它能够分析项目依赖,帮助找出无用的依赖,列出项目的依赖树,和依赖之间的冲突。因此这些功能聚集在一块叫插件。每个功能就叫插件目标。
插件绑定:
maven的生命周期与插件相互绑定,用以完成实际的构建任务,具体而言是生命周期的阶段(phase)和插件的目标(target)相互绑定,以完成某个具体的构建任务,内置绑定:为了能让用户几乎不用任何配就能构建maven项目,maven在核心为一些生命周期阶段绑定了很多插件的目标,当用户通过命令行调用生命周期阶段的时候,对应的插件目标就会执行相应的任务,clean生命周期权有pre-clean、clean、post-clena三个阶段,其中的clean与maven-clean-plugin:clean绑定,maven-clean-plugin仅有clean这一个目标,其作用就是删除项目的输出目录,具体的参考请查看官网。
自定义绑定:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy</id> <phase>install</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/lib </outputDirectory> </configuration> </execution> </executions> </plugin>
在声明插件的时候增加 install就可以将插件目标绑定的这个生命周期了,当这个生命周期执行的进修,插件目标就会被执行。
其中configuration是为这个插件目标配置的属性。配置属性可以在execution下面也可以直接在plugin下面配置。
- Maven 入门知识
- maven 入门和提高知识
- Maven入门最少必备知识
- maven知识
- 入门知识
- maven 入门
- maven 入门
- MAVEN 入门
- Maven入门
- maven入门
- maven入门
- Maven 入门
- Maven入门
- maven 入门
- Maven入门
- maven入门
- maven 入门
- maven入门
- 【Android基础】一
- Mysql新建用户与权限
- 一个简单实例的LR分析过程
- 基于Cordova的android项目入门
- 直播(ulive)进阶使用
- Maven 入门知识
- 形状类族的中的纯虚函数
- 设计模式
- 【JZOJ 3397】 雨天的尾巴
- Backbonejs之model
- JavaWeb开发-MD5加密算法(直接使用java中的MessageDigest)
- KFIFO无锁队列
- arm B和BL指令+系统引导程序start.s浅析
- 4G频段区域区分