Maven常用标签及作用

发布于:2024-09-18 ⋅ 阅读:(129) ⋅ 点赞:(0)

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节点用于集中管理依赖的版本和其它配置信息,它不会直接将依赖添加到类路径中,而是提供了一种方式来集中管理依赖版本和其它配置信息。
注意:在jar类型的项目中该标签没有意义。

packaging标签

  packaging标签用于指定项目的打包类型,这个标签告诉Maven该项目最终应该被打包成什么形式。
  常用类型及用途:

  • jar:默认的打包类型,用于创建Java应用程序的标准JAR文件。通常用于库或内部服务。
  • war:用于创建Web应用程序的标准WAR文件。这种类型的项目最终会被打包成一个可以部署到如Tomcat、Jetty等Web容器上的WAR文件。
  • pom:用于创建项目对象模型(POM)文件,通常作为其它项目的父项目。POM项目本身不会被打包成任何类型的文件,主要用于管理其它项目的依赖和配置。

scope标签中import、type标签中pom的用法

用法一

  当一个父pom中的dependencyManagement标签中需要导入另一个pom中的dependencyManagement的时候,必须同时使用scope>import</scope和type>pom</type
  例子
在这里插入图片描述
:这是为了解决pom类型的父工程单继承的问题。

用法二

  当需要把一些依赖定义到一个pom工程中,但是由于maven单继承机制,子工程又想通过依赖引入该pom工程中的所有依赖,只需要添加type>pom</type
  例子
在这里插入图片描述
:这是为了解决子工程单继承的问题,通过type>pom</type可以依赖其它的pom父工程,从而将pom工程中的依赖都传递过来。type默认是jar,依赖jar工程时可以不写type标签,所以如果依赖于一个jar工程,而jar工程中包含大量的依赖,也会一起传递过来,这也就是maven依赖传递的原理。


网站公告

今日签到

点亮在社区的每一天
去签到