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

能否打包Maven公共依赖为starter kit,实现多团队Java项目依赖统一?

Java项目统一依赖与Starter Kit实现方案

完全可以通过Maven的依赖管理机制和自定义starter来实现团队依赖的统一化,下面是两种实用方案:

方式一:创建公共依赖管理POM

这是最基础的统一方式,适配所有Java Maven项目:

  • 新建一个Maven项目,将<packaging>设为pom(仅做依赖管理,不生成可执行jar)
  • 在这个POM的<dependencyManagement>节点下,统一声明团队所有常用依赖的版本号,包括Spring Boot、ORM框架、工具类等
  • 团队内的项目直接继承这个公共POM,或者通过<dependencyManagement>引入它,后续项目里引用依赖时无需指定版本,自动使用统一配置的版本

公共依赖管理POM示例:

<groupId>com.yourteam</groupId>
<artifactId>team-common-dependencies</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>

<dependencyManagement>
    <dependencies>
        <!-- 引入Spring Boot官方依赖管理 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.7.15</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- 自定义团队常用依赖版本 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.20</version>
        </dependency>
    </dependencies>
</dependencyManagement>

项目中引用方式:
要么通过<parent>继承:

<parent>
    <groupId>com.yourteam</groupId>
    <artifactId>team-common-dependencies</artifactId>
    <version>1.0.0</version>
</parent>

<dependencies>
    <!-- 无需指定版本,自动使用公共POM中配置的版本 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
    </dependency>
</dependencies>

要么在自己的<dependencyManagement>中引入(适合已有父POM的项目):

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.yourteam</groupId>
            <artifactId>team-common-dependencies</artifactId>
            <version>1.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

方式二:自定义Spring Boot Starter(适合Spring生态项目)

如果你们的项目基于Spring Boot,可以把常用依赖、默认配置、甚至通用业务逻辑打包成自定义starter,实现“一键引入”:

  • 新建Maven项目,<packaging>设为jar
  • 在POM中加入spring-boot-starter作为基础,再添加团队常用的业务依赖(比如web、数据库、日志等)
  • 可编写自动配置类,统一配置日志格式、数据库连接参数、全局异常处理器等
  • 在src/main/resources/META-INF下创建spring.factories文件,指定自动配置类的路径,让Spring Boot启动时自动加载配置

自定义Starter POM示例:

<groupId>com.yourteam</groupId>
<artifactId>team-spring-boot-starter</artifactId>
<version>1.0.0</version>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
    </dependency>
</dependencies>

项目中引入方式:
只要在项目POM中添加这个starter依赖,就能自动获取所有统一的依赖和配置:

<dependencies>
    <dependency>
        <groupId>com.yourteam</groupId>
        <artifactId>team-spring-boot-starter</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

后续维护建议

  • 将公共POM或starter发布到团队内部的Maven仓库(比如Nexus),所有成员都能直接拉取
  • 定期更新依赖版本,只需要修改公共模块的版本号,所有引用的项目同步升级即可
  • 可根据业务场景拆分细分starter,比如team-db-starter、team-web-starter,让项目按需选择引入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:30:41