目录
一.下载
https://maven.apache.org/download.cgi
二.安装
解压缩apache-maven-3.6.1-bin.zip
将带有mvn命令的bin文件夹添加到PATH环境变量(类似配置java环境变量)
在cmd中输入:mvn -v进行确认结果如下
三.创建项目
在cmd中输入:
mvn -B archetype:generate -D archetypeGroupId=org.apache.maven.archetypes -D groupId=com.mycompany.app -D artifactId=my-app
该src/main/java
目录包含项目源代码,该src/test/java
目录包含测试源,pom.xml
文件是项目的项目对象模型或POM。
集成IDEA,标注区替换自己下载的即可
四.项目继承
1
- |-- my-module
- | `-- pom.xml
- `-- pom.xml
- <project>
- <parent>
- <groupId>com.mycompany.app</groupId>
- <artifactId>my-app</artifactId>
- <version>1</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.mycompany.app</groupId>(重复部分)
- <artifactId>my-module</artifactId>
- <version>1</version>(重复部分)
- </project>
子模块可以去除重复声明直接引用父类模块
- <project>
- <parent>
- <groupId>com.mycompany.app</groupId>
- <artifactId>my-app</artifactId>
- <version>1</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>my-module</artifactId>
- </project>
2
- | - 我的- 模块
- | | | ` - pom.xml
- ` - 父母
- ` - pom.xml
- <project>
- <parent>
- <groupId>com.mycompany.app</groupId>
- <artifactId>my-app</artifactId>
- <version>1</version>
- <relativePath>../parent/pom.xml</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>my-module</artifactId>
- </project>
relativePath顾名思义,它是从模块pom.xml
到父模块的相对路径pom.xml
。
五.日常使用及概念理解
1:
生命周期clean、validate、compile、test、package、verify、install、site、deploy.
开发中一般执行以下顺序通过即可
clean:除项目中编译文件和本地仓库中已打包的文件(即本地install的文件)
compile:即编译项目中的java文件,并存放在项目的编译目录
install 将打包的代码存放到本地maven仓库,可供本地其它项目依赖使用
注:package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用.
2
SNAPSHOT版本是最终'发布'版本之前的'开发'版本。SNAPSHOT比它的版本“更老”。
*maven -*命令介绍(谷歌翻译)
-am, - also-make如果指定了项目列表,也是 建立项目所需的项目名单
-amd, - also-make-dependents如果指定了项目列表,也是 构建依赖的项目列表上的项目
-B, - 批处理模式在非交互式(批处理)中运行模式(禁用输出颜色)
-b, - builder <arg>构建策略的ID 使用
-C, - strict-checksums如果校验和没有,则构建失败比赛
-c, - lax-checksums如果校验和不匹配,则发出警告
-cpu, - check-plugin-updates无效,只保留向后兼容性
-D, - define <arg>定义系统属性
-e, - errors生成执行错误消息
-emp, - encrypt-master-password <arg>加密主安全密码
-ep, - encrypt-password <arg>加密服务器密码
-f, - file <arg>强制使用备用POMfile(或带有pom.xml的目录)
-fae, - fail-at-end之后只能使构建失败;允许所有未受影响的构建 继续
-ff, - fail-fast在第一次失败时停止反应堆建设
-fn, - fail-never永远不会让构建失败,无论如何项目结果
-gs, - global-settings <arg>全局的备用路径设置文件
-gt, - global-toolchains <arg>全局的备用路径 工具链文件
-h, - help显示帮助信息
-l, - log-file <arg>所有构建输出的日志文件 将去(禁用输出颜色)
-llr, - legacy-local-repository使用Maven 2 Legacy Local存储库行为,即没有使用_remote.repositories。也可以是 通过使用激活 -Dmaven.legacyLocalRepo =真
-N, - 非递归不要递归到子项目中
-npr, - no-plugin-registry无效,只保留向后兼容性
-npu, - no-plugin-updates无效,只保留向后兼容性
-nsu, - no-snapshot-updates抑制SNAPSHOT更新
-ntp, - no-transfer-progress不显示传输进度下载或上传时
-o, - offline脱机工作
-P, - activate-profiles <arg>以逗号分隔的配置文件列表激活
-pl, - projects <arg>以逗号分隔的指定列表建设反应堆项目所有项目。一个项目可以由[groupId]指定:artifactId或者通过它的相对路径
-q, - 安静静音输出 - 仅显示错误
-rf, - resume-from <arg>从指定的Resume reactor项目
-s, - settings <arg>用户的备用路径设置文件
-t, - toolchains <arg>用户的备用路径工具链文件
-T, - threads <arg>线程计数,例如2.0C其中C是核心倍增
-U, - update-snapshots强制检查是否缺失发布和更新快照远程存储库
-up, - update-plugins无效,只保留向后兼容性
-v, - version显示版本信息
-V, - show-version显示版本信息 没有停止构建
-X, - debug生成执行调试输出