跳转到正文

快速开始

本例创建一个最小 Maven 项目,导入 EFC 项目 BOM,再声明 Guava、公共常量和 Store API。目标是确认依赖版本由平台统一提供,无需启动 Spring Boot 或连接业务服务。

1. 准备环境与构件

准备 Java 25、Maven 3.9+,通过 java -versionmvn -version 确认 Maven 实际使用的 JDK。

示例使用 4.1.0-SNAPSHOT。项目仓库或本地 Maven 仓库中需要有完整的平台 POM、Component / Business BOM 及其导入的子 BOM。BOM 模型解析会读取这些 POM,即使本例只添加三个运行时依赖。自行构建源码时先完成本地安装顺序

2. 创建 POM

在空目录创建 pom.xml

xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>example</groupId>
    <artifactId>efc-dependencies-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <repositories>
        <repository>
            <id>chenxueli-public</id>
            <url>https://nexus.chenxueli.cn/repository/maven-public/</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>chenxueli-public</id>
            <url>https://nexus.chenxueli.cn/repository/maven-public/</url>
        </pluginRepository>
    </pluginRepositories>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.own</groupId>
                <artifactId>springboot-dependencies-project-parent</artifactId>
                <version>4.1.0-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </dependency>
        <dependency>
            <groupId>com.own</groupId>
            <artifactId>constant</artifactId>
        </dependency>
        <dependency>
            <groupId>com.own.component</groupId>
            <artifactId>springboot-component-store-api</artifactId>
        </dependency>
    </dependencies>
</project>

已有项目只需合并 dependencyManagement 和所需 dependencies,保留原来的父 POM。已通过项目父 POM 导入相同版本管理时,无需再重复导入。示例分别配置依赖仓库和 Maven 插件仓库;已有公司 Maven 镜像时按公司配置解析构件,仓库与凭据说明见仓库配置

3. 检查最终版本

在示例目录执行:

sh
mvn help:effective-pom -Doutput=target/effective-pom.xml
mvn dependency:tree -Dincludes=com.google.guava:guava,com.own:constant,com.own.component:springboot-component-store-api

在生成的 target/effective-pom.xml 中查看项目自身的 dependencies,应解析为:

坐标版本
com.google.guava:guava33.6.0-jre
com.own:constant4.1.0-SNAPSHOT
com.own.component:springboot-component-store-api4.1.0-SNAPSHOT

effective-pom 验证最终 Maven 模型;dependency:tree 进一步查看直接及传递依赖版本。后者需要相关依赖元数据可解析。若提示缺少 SNAPSHOT,先检查仓库或本地安装是否齐全,不要为每个子模块随意补版本。

4. 添加实际需要的能力

按需在 dependencies 中添加版本参考中的坐标。可先运行 Constant 快速开始,验证普通 Java 程序中的列表去重。引入 API 仅提供接口;想在 Spring Boot 中使用 Store,应根据Store 快速开始选择运行时 Starter。接入资源文件等业务模块,还需按业务文档完成环境、配置和数据初始化。

本例只导入依赖版本,不会继承 Java release、Compiler、Surefire 或 Spring Boot 打包插件。需要编译和启动应用时,继续按使用与配置选择构建方案。