You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

什么是Java Jar包的META-INF/DEPENDENCIES文件?如何通过Maven生成?

问题1:META-INF/DEPENDENCIES文件是什么,对Jar包有什么作用?
  • 这是Maven构建过程中生成的依赖声明文件,会清晰罗列当前Jar包所有的传递依赖信息,你给出的示例内容就是按所属组织分类,列出了每个依赖的名称、坐标、官方地址、许可证类型等核心信息。
  • 它的核心作用有3点:
    • 许可证合规校验:企业级项目引入第三方Jar包时,可直接通过该文件快速核对所有依赖的许可证类型,避免引入许可证不兼容的依赖带来法律风险
    • 依赖冲突排查:项目出现依赖版本冲突时,可直接通过该文件确认当前Jar包内置的传递依赖版本,无需额外拉取pom文件逐层解析
    • 依赖溯源:可清晰查看每个依赖的所属组织、来源信息,出现安全漏洞时能快速定位涉及的依赖范围
问题2:该文件如何生成?Maven构建时怎么配置才能生成?
  • 该文件是maven-project-info-reports-plugin插件的dependencies目标生成的,不属于Maven默认构建产物,需要主动配置插件才会生成。
  • 具体配置方式如下,将配置添加到项目pom.xml的<build><plugins>节点下即可:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-project-info-reports-plugin</artifactId>
    <version>3.4.5</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>dependencies</goal>
            </goals>
            <configuration>
                <!-- 配置生成的依赖文件输出到META-INF目录 -->
                <outputDirectory>${project.build.outputDirectory}/META-INF</outputDirectory>
                <includeTransitiveDependencies>true</includeTransitiveDependencies>
                <includeLicenseInfo>true</includeLicenseInfo>
            </configuration>
        </execution>
    </executions>
</plugin>
  • 配置完成后,正常执行mvn package命令构建Jar包时,就会自动在Jar包的META-INF目录下生成该DEPENDENCIES文件。

内容的提问来源于stack exchange,提问作者Sherein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:00:02