Maven pom.xml文件怎么配置 pom.xml依赖详解

1次阅读

maven pom.xml 配置核心是准确声明项目坐标(groupid、artifactid、version)、按需配置依赖(含 scope 和 exclusions)及构建插件,善用 properties 和 parent 统一管理。

Maven pom.xml文件怎么配置 pom.xml依赖详解

配置 Maven 的 pom.xml 文件,核心是写对项目坐标、依赖和构建行为。它不是“越全越好”,而是按需声明——多数基础字段可省略(如 packaging 默认为 jar),关键在准确表达“我要什么”和“怎么建”。

项目坐标必须写全

这是 Maven 识别项目的唯一依据,缺一不可:

  • groupId:组织标识,通常用域名倒写,比如 com.example
  • artifactId:模块名,小写字母+短横线,比如 user-service
  • version:版本号,建议带 -SNAPSHOT 标识开发中版本,如 1.2.0-SNAPSHOT

这三者合起来构成一个构件的完整坐标,Maven 用它从仓库下载、安装或发布 jar 包。文件名默认就是 artifactId-version.jar

依赖配置要分清 scope 和传递性

<dependencies></dependencies> 块里每个 <dependency></dependency> 至少包含 groupIdartifactIdversion。常用补充项有:

  • scope:控制依赖生效阶段
    compile(默认)→ 编译、测试、运行都可用;
    test → 仅测试编译和运行时有效(如 junit);
    provided → 编译和测试需要,但运行时由容器/环境提供(如 servlet-api);
    runtime → 编译不需要,测试和运行需要(如 JDBC 驱动);
    import → 仅用于 dependencyManagement 中导入 bom,不参与 classpath 构建。
  • exclusions:显式排除传递依赖中的冲突项
    比如引入了某个库,但它偷偷带了一个旧版 slf4j,就可以用 <exclusion></exclusion> 干掉它,再单独声明新版。

常用属性和构建插件别漏掉

<properties></properties> 是简化维护的利器,建议统一定义:

  • java.version:指定源码和目标字节码版本,如 17
  • project.build.sourceEncoding:避免中文乱码,设为 UTF-8
  • 还可自定义变量,比如 spring-boot.version,然后在 dependency 中用 ${spring-boot.version} 引用

<build></build> 下常配编译插件,尤其 Java 版本升级后必须显式声明:

  • maven-compiler-plugin:指定 sourcetarget 版本
  • maven-surefire-plugin:控制测试执行(如跳过测试:<skiptests>true</skiptests>
  • maven-jar-plugin:定制 MANIFEST.MF 或添加主类(Main-Class

父 POM 和依赖管理让多模块更可控

如果是 spring boot 项目或企业级多模块工程,推荐用 <parent></parent> 继承统一父 POM:

  • 自动继承版本、插件配置、默认 scope 等,减少重复
  • 配合 <dependencymanagement></dependencymanagement> 可集中声明依赖版本,子模块只需写 groupId + artifactId,不用写 version
  • 注意:dependencyManagement 不会实际引入依赖,只是“约定版本”;真正引入还得靠子模块自己的 dependencies
text=ZqhQzanResources