关于maven的理解

一直听说过,但从没碰过

Apache Maven是一个用于Java项目的构建自动化工具。如果你曾经不得不处理构建具有依赖性或特殊构建要求的Java项目,那么您可能已经遇到了Maven。它可以消除解决依赖给你带来的麻烦。

Maven是一个项目构建和管理的工具,提供了帮助管理构建、文档、报告、依赖、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。

为什么Maven有用?

如果没有Maven,你可能不得不经历的过程!!

  • 如果使用了spring,去spring的官网下载jar包;如果使用hibernate,去hibernate的官网下载Jar包;如果使用Log4j,去log4j的官网下载jar包…..

  • 当某些jar包有依赖的时候,还要去下载对应的依赖jar包

  • 当jar包依赖有冲突时,不得不一个一个的排查

  • 当新人加入开发时,需要拷贝大量的jar包,然后重复进行构建

  • 当新人加入开发时,需要拷贝大量的jar包,然后重复进行构建

  • 当进行测试时,需要一个一个的运行….检查

自2003年以来,Maven一直是Apache下的开源项目,之前从Sonatype开始。鉴于其强大的支持和广泛的受欢迎程度,Maven非常稳定且功能丰富,提供了许多插件,可以执行任何操作,从生成项目文档的PDF版本到生成SCM最近更改的列表。添加此功能所需的只是少量额外的XML或额外的命令行参数。

有很多依赖?没问题。Maven连接到远程存储库(或者您可以设置自己的本地存储库)并自动下载构建项目所需的所有依赖项。

例如,假设您有一个使用Apache的Camel路由工具版本2.10.6的项目,但随后发布了新版本的Camel,2.11.1。不必去Apache的网站,下载2.11.1发行版并用它替换2.10.6,你可以告诉Maven使用新的发行版,工作将为你完成。并不是说下载单个Java软件包并将其放在项目文件夹中很困难,而是考虑每次更新时必须为多个依赖项执行此操作。这是一个很短的时间,但很快就会增加。

为了实际运行Maven,您需要做的就是导航到项目文件夹并运行:

1
mvn [command]

这个命令有一些参数,但仅举几例:

test:运行项目的所有测试
clean:删除所有旧的构建文件
package:将项目打包到jar(或其他格式,具体取决于指定的内容)
install:将项目放在本地Maven存储库中
deploy:将项目放在远程Maven存储库中

Maven是一个很大的主题,这个简短的介绍只是为了让您了解Maven的作用,因此请务必查看以下资源,了解有关如何实际使用它的更多信息。

image

热部署,热编译

意思就是,在你web项目已经运行的时候,修改代码的能直接被web服务器所接受,就不需要你 重启服务器了,或者重新部署代码了,而且你可以直接通过maven 打包war或者jar项目。