概述:
1.Maven本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(简称:POM)。
2.Maven是一个构建工具,由Apache开源组织贡献。
总结:
1.Maven 统一集中管理好所有的依赖包,不需要程序员再去寻找。
2.对应第三方组件用到的共同 jar,Maven 自动解决重复和冲突问题。
3.Maven 作为一个开放的架构,提供了公共接口,方便同第三方插件集成。程序员可以将自己需要的插件,动态地集成到 Maven,从而扩展新的管理功能。
4.Maven 可以统一每个项目的构建过程,实现不同项目的兼容性管理
下载、安装和配置环境
References:
标准目录结构介绍:
References:
Maven的目录结构和传统的项目有所差别,下面是一个jar包通常有的目录结构。
src/main/java:源代码目录
src/main/resources:资源文件目录
src/test/java:测试代码目录
src/test/resources:测试资源文件目录
这里只是部分结构,像jar或者war工程如果有源代码的一般是这个结构,但这个结构也不是必须的,不同的项目不同的需求也可以有不同的结构。
以下是maven具体给出的希望的目录结构,并且使用模板创建maven项目也是按照这种结构,所以大家尽量遵守这种规范。
下面看一个jar工程的目录结构
其中有一个Maven dependencies就是所有的依赖jar包,target目录是打包生成的临时目录文件,包括了class文件,test的相关文件,及生成的jar包等,POM文件就是maven项目的核心配置文件
POM.XML
pom.xml 是 Maven 的配置文件,通常在根目录下。
Maven 项目结构:
命令:
获取帮助: mvn -h
mvn -P: 激活 profiles 中的 profile, 使用 , 分割列表。
执行 mvn 命令对应 phase: mvn <phase>
phase 我们可以在文档中查找有哪些。Available lifecycle phases(可用生命周期阶段)
执行 mvn plugin(goal):
mvn somePrefix:goal@executionId
somePrefix 表示 plugin Name 的 prefix,通常是下面的 prefix:
- maven-${prefix}-plugin
- ${prefix}-maven-plugin
- goal 是<goal>goalName<goal> 中的 goalName
- executionId 是 <execution> 下面的 <id>idName</id> 中的 idName
mvn groupId:artifactId:version:goal@executionId
- version不是必须的.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。