一、简介
Maven 是一个用于构建/管理任何基于Java项目的工具,其本身也是基于Java的 因此需要Java环境。其最初是为了简化 Jakarta Turbine 项目的构建而生。
其主要处理以下关心的领域:
二、安装
三、简单使用
四、主要模块/知识
- 标准目录布局同时也是用 Maven 构建的默认值,比如哪里是java源码,测试目录在哪,输出目录是什么等等。
- 以下有些描述暂时觉得模糊也没关系,一些部分并不常见 笔者也没用过,像 it / filters / site / assembly等,临时有大致概念即可。
- 从官方示例看,java 源码包结构只要求和 groupId 相同即可,而不要求加一层 artifectId 的父包。但实际项目各种都有
maven-project
├───pom.xml 项目描述文件,定义在生命周期中所需的依赖和所需模块等等
├───README.txt 项目说明
├───NOTICE.txt 项目中使用第三方库的资料
├───LICENSE.txt 许可文件
└───src 包含构建项目所需所有资料,site等等
├───main 最重要的目录,所有工件(artifect)都应出现在这里
│ ├───java 工件Java源码
│ ├───resources 配置及资源等文件
│ ├───filters 包含在构建阶段将值注入到resources目录下配置属性的文件
│ └───webapp 对于web应用,包含诸如JS/CSS/HTML等资源文件
├───test 所有测试代码及资源
│ ├───java
│ ├───resources
│ └───filters
├───it 通常是用于 Maven Failsafe Plugin 的集成测试
├───site 使用 Maven Site Plugin(https://maven.apache.org/plugins/maven-site-plugin/index.html) 创建的site文档
└───assembly 二进制打包装配配置,一般也不常用适用 Apache Maven Assembly Plugin
└───target 用于容纳 build 的所有输出
- 依赖(dependencies)、插件(plugins) 或 可被执行的目标(goal)、构建配置(profiles)等。
- 以及关于项目的本身的信息,如 版本(version)、说明(description)、开发人员(developers)等
需注意的是:POM 中的 <groupid>:<artifactid>:<version></version></artifactid></groupid>
构成了该工件的完全限定名
关于 POM、Super POM、最小POM等更多信息参考:
该配置文件可能存在两个位置:
- 全局的设置:${maven.home}/conf/settings.xml
- 用户级设置:${user.home}/.m2/settings.xml 【默认情况下可能不存在,可copy全局过来修改】
有三种内置构建生命周期(build lifecycle):默认(default)、清理(clean)、site
需注意:
- validate:验证项目是否正确,所有必要信息是否提供
- compile:编译项目源码
- test:使用合适的单元测试框架测试编译后的源码。这些测试代码不要求被打包或部署
- package:将编译后的代码打包为分发格式,例如 JAR
- verify:运行继承测试的所有检查,以确保符合标准
- install:将 package 安装到 Locale Repository(本地仓储),用作其他项目依赖
- deploy:将最终 package 复制到 Remote Repository(远程仓储)
Original: https://www.cnblogs.com/simpleito/p/15118332.html
Author: SimpleIto
Title: Maven 快速入门
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/573688/
转载文章受原作者版权保护。转载请注明原作者出处!