1 是什么
Apache的优秀开源项目,是Java项目的构建和管理工具。
Maven 是 Apache 组织下的一个跨平台的项目管理工具,它主要用来帮助实现项目的构建、测试、打包和部署。Maven 提供了标准的软件生命周期模型和构建模型,通过配置就能对项目进行全面的管理。它的跨平台性保证了在不同的操作系统上可以使用相同的命令来完成相应的任务。Maven 将构建的过程抽象成一个个的生命周期过程,在不同的阶段使用不同的已实现插件来完成相应的实际工作,这种设计方法极大的避免了设计和脚本编码的重复,极大的实现了复用。
2 能干什么
- 用maven方便的创建项目,基于archetype可以创建多种类型的java项目
- Maven仓库对jar包(artifact)进行统一管理,避免jar文件的重复拷贝和版本冲突
- 团队开发,管理项目的RELEASE和SNAPSHOT版本,方便多模块(Module)项目的各模块之间的快速集成
简介
本文将介绍基于 Apache Maven 3 的项目构建的基本概念和方法。Maven 是一套标准的项目构建和管理工具,使用统一规范的脚本进行项目构建,简单易用,摒弃了 Ant 中繁琐的构建元素,并具有较高的可重用性。读完本文,你将了解 Maven 的基本概念和使用它进行项目构建的基本方法。
Maven vs Ant
Ant 也是 Apache 组织下的一个跨平台的项目构建工具,它是一个基于任务和依赖的构建系统,是过程式的。开发者需要显示的指定每一个任务,每个任务包含一组由 XML 编码的指令,必须在指令中明确告诉 Ant 源码在哪里,结果字节码存储在哪里,如何将这些字节码打包成 JAR 文件。Ant 没有生命周期,你必须定义任务和任务之间的依赖,还需要手工定义任务的执行序列和逻辑关系。这就无形中造成了大量的代码重复。
Maven 不仅是一个项目构建工具还是一个项目管理工具。它有约定的目录结构(表 1)和生命周期,项目构建的各阶段各任务都由插件实现,开发者只需遵照约定的目录结构创建项目,再配置文件中生命项目的基本元素,Maven 就会按照顺序完成整个构建过程。Maven 的这些特性在一定程度上大大减少了代码的重复。
3 常用命令
maven install
maven的install可以将项目本身编译并打包到本地仓库,这样其他项目引用本项目的jar包时不用去私服上下载jar包,直接从本地就可以拿到刚刚编译打包好的项目的jar包,很灵活,避免每次都需要重新往私服发布jar包的痛苦。
修改服务端比如manage层和dao层的项目的时候如果eclipse没有自动编译,则在调试的时候容易出很奇怪的错误,就是明明代码已经改好了,但是debug的时候还是在报错,这就是没有项目没有编译完成造成的,看到的改好的代码没有变成class,因此,服务端的文件改动之后如果发现没有效果的时候要记得问题可能是没有编译,这时候可以使用maven的install命令编译
IDEA可以很方便创建project和module,但是修改各个module的版本的时候,会遇到import报错的情况,这就是maven仓库中没有对应的包,仍然需要使用到install,注意要使用lifecycle里面的install
这样就可以将已有的module打包到maven仓库,再进行修改版本号,不会影响项目里的其他module
mvn clean
清理环境,清除target文件夹。
mvn compile
编译,将Java源文件编译成class文件。
mvn test
执行test目录下的测试用例。
mvn package
打包,将Java工程打成jar包。