理解maven

1.理解“仓库”

首次运行完mvn -version后,会在用户目录下创建一个.m2的目录(比如:C:Users当前用户名.m2),这个目录是maven的“本地仓库”,仓库是maven中一个很重要的概念。

试想一下,我们会在工作中同时创建很多项目,每个项目可能都会引用一些公用的jar包(.NET中是dll文件),一种作法是每个项目里,都复制一份这些依赖的jar包(或dll文件),这样显然不好,相同的文件在硬盘上保存了多份,太占用空间,而且这些依赖的jar包(或dll文件)的版本也不太好管理(比如某个公用的jar包,从1.0升级到2.0,如果所有引用这个jar包的项目都需要更新,必须一个个项目的修改)。

maven的仓库则很好的解决了这些问题,它在每台机器上创建一个本机仓库,把本机上所有maven项目依赖的jar包统一管理起来,而且这些jar包用“坐标”来唯一标识(注:坐标是另一个重要的概念,后面还会讲到,这里只要简单理解成“唯一识别某个jar包文件名、版本号”的标识即可),这样所有maven项目就不需要再象以前那样把jar包复制到lib目录中,整个maven项目看起来十分清爽。

2.记住tree命令是用来显示项目结构的

2.2 maven项目的目录结构

C: estmaven-hello-world>tree
Folder PATH listing for volume win7
Volume serial number is AA2C-6E70
C:.
├───src
│   ├───main
│   │   └───java
│   │       └───cnblogs
│   └───test
│       └───java
│           └───cnblogs
└───target
    └───classes
        └───cnblogs

注意上面带红色的目录名,maven项目采用“约定优于配置”的原则,src/main/java约定用于存放源代码,src/main/test用于存放单元测试代码,src/target用于存放编译、打包后的输出文件。这是全世界maven项目的通用约定,请记住这些固定的目录结构。

3.

原文地址:https://www.cnblogs.com/panxuejun/p/6093387.html