依赖类型dependency type在maven中的作用

本文解析了Maven中依赖项的type属性作用,探讨了默认type为jar的意义及type为pom的应用场景,并通过实例说明了不同type如apk、ejb的处理方式。
dependency为什么会有type为pom,默认的值是什么? 

dependency中type默认为jar即引入一个特定的jar包。那么为什么还会有type为pom呢?当我们需要引入很多jar包的时候会导致pom.xml过大,我们可以想到的一种解决方案是定义一个父项目,但是父项目只有一个,也有可能导致父项目的pom.xml文件过大。这个时候我们引进来一个type为pom,意味着我们可以将所有的jar包打包成一个pom,然后我们依赖了pom,即可以下载下来所有依赖的jar包


看看下面这段pom配置

1
2
3
4
5
6
7
...
<dependency>
    <groupId>xxx</groupId>
    <artifactId>yyy</artifactId>
    <type>ejb</type>
</dependency>
...

这个<type>很多maven相关的资料中都未曾提及,而上网搜了一下中文资源,这些文章都把compile、runtime、test等本属于scope的概念混淆为“依赖类型”<type>的概念。而且,关于这个<type>的解释也非常少。

我也是看了Maven 3 Cookbook之后从中找到些只言片语,反推出type的作用。

看书中原文(P134. How it works...):

Adding the type of apk to the dependency allows the Maven Android plugin to find the Android package of the application.

不难看出,<type>apk</type>告诉maven使用maven android plugin来进行处理<type>为apk的依赖。从而推想<type>ejb</type>就是告诉maven使用maven ejb plugin来处理。如果想知道ejb plugin如何处理这类dependency,那就去查查ejb plugin的详细说明吧,这个plugin的说明网上有很多。


Maven 项目中,依赖(`dependency`)的配置信息需要添加到项目的 `pom.xml` 文件中。`pom.xml` 是 Maven 项目的核心配置文件,用于定义项目的基本信息、构建流程以及依赖关系。 ### 添加 Maven Dependency 的位置 在 `pom.xml` 中,依赖通常被放置在 `<dependencies>` 标签内部。每一个依赖项都由一组标签组成,包括: - `<groupId>`:定义依赖所属的组织或项目组。 - `<artifactId>`:定义具体的模块或库名称。 - `<version>`:指定该依赖的具体版本号。 - 可选的 `<scope>`:定义依赖作用范围(如 `compile`, `runtime`, `test` 等)。 例如,添加一个 JUnit 测试框架的依赖可以如下配置: ```xml <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies> ``` ### 使用 Dependency Management 统一管理版本 如果项目是多模块结构或者希望统一管理多个依赖的版本,可以在父项目的 `pom.xml` 中使用 `<dependencyManagement>` 元素。这样子项目在引用相同依赖时,无需重复声明版本号,而是继承自父项目[^2]。 父项目中的示例配置如下: ```xml <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>5.3.20</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement> ``` 然后在子项目中只需声明 `groupId` 和 `artifactId`,无需指定 `version`: ```xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </dependency> </dependencies> ``` ### 在 IDE 中查看和管理依赖 在 IntelliJ IDEA 或 Eclipse 等支持 Maven 的集成开发环境中,修改完 `pom.xml` 后,IDE 会自动下载并解析依赖。在 IDEA 中,右侧的 Maven 工具窗口会显示当前项目的依赖树,并可展开查看所有引入的库及其传递依赖[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值