Maven常用标签及作用
- Maven常用标签及作用
- parent标签
- dependencies和dependencyManagement,以及两者的区别
- dependencies标签
- dependencyManagement标签
- packaging标签
Maven常用标签及作用
parent标签
- 依赖管理:父POM可以定义一组共享的依赖项(
dependencies
标签中定义的内容),这样所有子项目可以继承这些依赖项而无需在每个子项目的pom.xml中重复声明。 - 统一配置:父POM可以设置一些通用的配置,比如构建插件、报告插件、项目构建路径等,这样可以确保所有子项目遵循相同的构建规则。
- Example
父POM
子POM
在这个例子中,子项目继承了父项目中的构建插件配置,如maven-compiler-plugin和maven-surefire-plugin,确保所有子项目遵循相同的构建规则。
- 版本控制:通过在父POM中定义依赖版本,可以更容易地管理整个项目树中的依赖版本,避免版本冲突。
- Example
父POM
子POM
在这个例子中,父项目使用属性来管理依赖版本,子项目继承这些属性,从而确保所有子项目的依赖版本一致,避免版本冲突。
parent标签的relativePath子标签:用于指定父POM的位置,如果留空或设置为..
,Maven会在本地仓库中查找父POM;如果指定了一个路径,Maven会尝试从该路径加载父POM。
dependencies和dependencyManagement,以及两者的区别
dependencies标签
dependencies节点用于声明项目直接依赖的库,这些依赖会被实际下载并添加到项目的类路径中,用于编译、测试和运行。
dependencyManagement标签
dependencyManagement节点用于集中管理依赖的版本和其它配置信息,它不会直接将依赖添加到类路径中,而是提供了一种方式来集中管理依赖版本和其它配置信息。
packaging标签
packaging标签用于指定项目的打包类型,这个标签告诉Maven该项目最终应该被打包成什么形式。
常用类型及用途:
- jar:默认的打包类型,用于创建Java应用程序的标准JAR文件。通常用于库或内部服务。
- war:用于创建Web应用程序的标准WAR文件。这种类型的项目最终会被打包成一个可以部署到如Tomcat、Jetty等Web容器上的WAR文件。
- pom:用于创建项目对象模型(POM)文件,通常作为其它项目的父项目。POM项目本身不会被打包成任何类型的文件,主要用于管理其它项目的依赖和配置。