pom.xml
该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
1.1 基本内容
1.1.1 modelVersion
写明pom版本,一般都是4.0.0
1.1.2 groupId
用于写明组织名,如com.star.car
1.1.3 artifactId
用于写明项目名
1.1.4 version
用于写明项目版本
1.1.5 packaging
写明打包机制,如war、rar、jar等
1.1.6 name
写明项目描述名称,可选
1.1.7 url
写明网站等
1.2 parent
写明父pom以及版本等
1.3 properties
定义在该文件中的常量,常有定义编码的常量 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1.4 build
编译配置
1.4.1 defaultGoal
定义默认目标
1.4.2 directory
定义输出的文件目录
1.4.3 finalName
定义输出的文件名
1.4.4 resources
定义使用的资源文件
1.4.5 pluginManagement
定义使用的插件,和dependencyManagement相似,只定义并未引用
1.4.5.1 plugin
定义插件,使用artifactId和groupId还有版本定义,并使用configuration进行配置
1.4.6 plugins
使用已定义的插件
1.5 profiles
定义当某条件触发时,会激活某profile
1.6 dependencyManagement
主要内容,定义所依赖的jar包
1.6.1 dependency
使用groupId、artifactId和version确定所依赖的jar等
1.6.1.1 scope
- compile:默认的,在项目打包、编译、运行、测试时都会用到,会随着项目一起发布
- provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar
- runtime,只在运行时使用,如JDBC驱动、日志包等,适用运行和测试阶段
- test,只在测试时使用,用于编译和运行测试代码,如junit,不会随项目发布
- system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它
1.6.1.2 exclusions
为解决依赖冲突的标签,如果A依赖B,使用本标签后可让A强行解除对B的依赖