project
最外层元素
modelVersion
指定Maven模型的版本号,对于Maven2和Maven3,它只能是4.0.0
version
版本信息
groupId
包id,会生成相应路径
artifactId
项目名称
packaging
项目打包方式
可为: jar、war、rar、ear、pom
jar(java application archive) 一般java应用程序打包生成,有类、库、资源、辅助文件等
war(web application archive) web应用程序打包生成
ear(enterprose application archive)企业级应用打包生成
dependencies和dependency
定义项目依赖
dependency>groupId+artifactId+version
repositories和repository
添加中央库、本地库之外所需要的库
reponsity>id+url
plugins和plugin
标明需要的插件
备注: 插件也是存在于仓库中
pluginManagement
pluginManagement>plugins>plugin 定义可用于继承的plugins
configuration
定义配置信息,可用于多种地方
build
1. 用于project下
存放用于build过程时(常见于打包)的配置,eg:
<build> <defaultGoal>install</defaultGoal> <directory>${basedir}/target</directory> <finalName>${artifactId}-${version}</finalName> <filters> <filter>filters/filter1.properties</filter> </filters> ... </build>
defaultGoal 执行build任务时,若没有指定目标,将使用的默认值,这里指: mvn install
directory 目标文件存放目录,默认target文件夹
finalName 目标文件名称
filters和filter
resources和resource 用于包含或排除某些文件
2. 用于profiles下
modules和module
记录子模块信息
parent
记录父模块信息
profiles和profile
能为一个特殊的环境定义一个特殊的构建,使得不同环境间构建的可移植性成为可能。
用人话来说就是能为不同的环境(例如prod、test...这个我们可自定义)自定义一些配置信息,这些信息会覆盖外部的配置。
--------------------------------------------------------------------------------------
常用插件配置:
maven-compiler-plugin,可用来设置maven编译时的配置,常用情况:
maven默认编译时jdk版本较低,可通过此插件指定jdk版本项目源码的jdk版本,及编译后的jdk版本以及编码方式等。
核心元素:
source 源代码编译jdk版本
target 目标平台编译jdk版本