Maven导读
构建项目
Maven是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。通过Maven,我们只需要输入简单的命令(如mvn clean install),就会帮我们处理繁琐的任务。
Maven是跨平台的。
Maven最大化的消除了构建的重复,抽象了构建生命周期,并且为绝大部分的构建任务提供了已实现的插件。比如说测试,我们只需要遵循Maven的约定编写好测试用例,当我们运行构建的时候,这些测试便会自动运行。
除此之外,Maven能帮助我们标准化构建过程。在Maven之前,十个项目可能有十种构建方式,但通过Maven,所有项目的构建命令都是简单一致的。有利于促进项目团队的标准化。
Maven不仅仅是构建工具
Maven通过坐标系统准确的定位每一个构建(artifact),也就是通过一组坐标Maven能够找到任何一个Java类库(如Jar文件)。所以通过Maven可以解决版本不一致、版本冲突、依赖臃肿等问题。
Maven还能帮助我们管理原本分散在项目中各个角落的项目信息,例如项目描述、开发者、许可证等。通过Maven自动生成的站点,以及一些插件,可以轻松获得项目文档、测试报告、静态分析报告、源码版本日志报告等信息。
Maven基础知识
常用构建命令
mvn -v 查看maven版本
mvn compile 编译
mvn test 测试
mvn package 打包
mvn clean 删除target
mvn install 安装jar包到本地仓库中
自动创建目录骨架
Maven提供archetype插件,该插件用于创建符合maven规定的目录骨架。
下面是Maven规定的目录骨架。其中target目录会在执行compile、package等命令的时候生成,里面存放编译后的文件、日志、jar包等文件。
1 2 3 4 5 6 7 8 9
| src main java 程序代码 test java 测试代码 target pom.xml
|
在CMD窗口,输入mvn archetype:generate
(第一次使用的时候,Maven会自动下载相关的jar包等文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6: (在这一步直接回车) Define value for property 'groupId': : org.lihui.mavenDemo (可通常我们填写组织机构名称倒写+项目名) Define value for property 'artifactId': : mavenDemo (项目名称,后边也可以加上对应的模块名称) Define value for property 'version': 1.0.0-SNAPSHOT: : (版本号,直接回车,默认1.0-SNAPSHOT) Define value for property 'package': mavenDemo: : (打包后的jar文件名,相当于.net中项目最后生成的程序集dll名称) Confirm properties configuration: groupId: org.lihui.mavenDemo artifactId: mavenDemo version: 1.0.0-SNAPSHOT package: mavenDemo Y: : (直接回车确认) [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: cnblogs [INFO] Parameter: packageName, Value: cnblogs [INFO] Parameter: package, Value: cnblogs [INFO] Parameter: artifactId, Value: maven-hello-world ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS (看到这个,表示项目创建成功!) [INFO] ------------------------------------------------------------------------
|
Maven的生命周期和插件