本篇完成 gemini-demo 工程骨架:Spring Boot 3.5、Java 17、LangChain4j 与 Gemini 相关依赖、启动类与基础配置。本篇不调用大模型;第 02 篇在 AiConfig 里接 Gemini。
先读 00|系列导读 了解全系列顺序。本篇对应仓库文件:pom.xml、src/main/java/com/ekko/gemini/GeminiDemoApplication.java、src/main/resources/application.properties。
环境
| 项 | 要求 |
|---|---|
| JDK | 17 |
| Maven | 3.9+(仓库根目录有 mvnw) |
| IDE | IntelliJ IDEA / Eclipse 均可 |
步骤 1:拉仓库或新建工程
跟系列做:克隆作者仓库,在根目录执行 git clone <仓库地址>。
从零新建:用 Spring Initializr 选 Maven、Java 17、Spring Boot 3.5.x,依赖勾选 Spring Web;包名 com.ekko.gemini,项目名 gemini-demo。生成后把下文 pom 与目录补全。
根目录建议结构:
text
gemini-demo/
├── pom.xml
├── mvnw
├── mvnw.cmd
├── src/main/java/com/ekko/gemini/
├── src/main/resources/
└── src/test/java/com/ekko/gemini/
步骤 2:配置 pom.xml
pom.xml 固定 Java 17、LangChain4j 1.13,并引入本系列依赖。核心片段如下(版本与仓库保持一致):
xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.10</version>
<relativePath/>
</parent>
<properties>
<java.version>17</java.version>
<langchain4j.version>1.13.0</langchain4j.version>
</properties>
<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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-google-ai-gemini</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.13.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-document-parser-apache-tika</artifactId>
<version>1.13.0-beta23</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-cohere</artifactId>
<version>1.13.0-beta23</version>
</dependency>
</dependencies>
依赖用途简述:
| 依赖 | 用途 |
|---|---|
spring-boot-starter-web |
后续 ChatController 等 HTTP 接口 |
langchain4j |
核心 API(AiServices、RAG 等) |
langchain4j-google-ai-gemini |
Gemini 对话与 Embedding |
langchain4j-open-ai |
与 OpenAI 兼容用法(本仓库保留,可按需删) |
langchain4j-document-parser-apache-tika |
第 14 篇多格式文档解析 |
langchain4j-cohere |
第 15 篇 Rerank |
build 里保留 spring-boot-maven-plugin。maven-surefire-plugin 见步骤 5。
步骤 3:启动类
src/main/java/com/ekko/gemini/GeminiDemoApplication.java:
java
package com.ekko.gemini;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GeminiDemoApplication {
public static void main(String[] args) {
SpringApplication.run(GeminiDemoApplication.class, args);
}
}
@SpringBootApplication 会扫描 com.ekko.gemini 及子包,后续 config、controller 放在该包下即可被 Spring 管理。
步骤 4:application.properties
src/main/resources/application.properties 先只写应用名:
properties
spring.application.name=gemini-demo
Gemini API Key 在第 02 篇配置。建议用环境变量或本地文件,不要提交到 Git:
properties
# 第 02 篇起使用,示例:
# google.ai.api-key=${GOOGLE_AI_API_KEY}
本地可建 application-local.properties(勿提交),并在 .gitignore 增加一行:
text
application-local.properties
终端示例(按你本机 shell 调整):
bash
export GOOGLE_AI_API_KEY=你的密钥
步骤 5:Surefire 与上下文测试
仓库默认在 pom.xml 里配置了 skipTests=true,日常 mvn package 会跳过测试。跟系列从第 02 篇跑单测时,二选一:
方式 A(推荐) :删掉 skipTests 配置,或改为 false。
方式 B:命令行临时执行:
bash
./mvnw -DskipTests=false -Dtest=GeminiModelChatTest_01 test
src/test/java/com/ekko/gemini/GeminiDemoApplicationTests.java 用于确认 Spring 上下文能加载:
java
package com.ekko.gemini;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class GeminiDemoApplicationTests {
@Test
void contextLoads() {
}
}
若仓库里已有 AiConfig 等完整 Bean,跑 contextLoads 可能要求已配置 API Key;本篇验收以 编译 为准,上下文测试可在第 02 篇配好 Key 后再跑。
验收
在仓库根目录执行:
bash
./mvnw -q -DskipTests compile
退出码为 0 即表示 JDK、依赖与主代码编译通过。
可选:在 IDE 运行 GeminiDemoApplication。若此时已存在未配 Key 的 AiConfig,启动可能失败,属正常;第 02 篇补模型配置后再启动。
常见问题
mvnw 无执行权限
bash
chmod +x mvnw
依赖下载慢
配置 Maven 镜像,或检查公司代理。
langchain4j 与 Spring Boot 版本对不上
langchain4j.version 与文章一致(1.13.0),Spring Boot 用 3.5.x;勿混用 Spring Boot 2.x。
跟仓库对不上
以作者仓库 pom.xml 为准;本篇只保证骨架与依赖,业务类在后续篇章逐篇加入。
下一篇
02|第一次调用 Gemini:从模型 Bean 到单轮对话 --- 在 config/AiConfig.java 注册 GoogleAiGeminiChatModel,用 GeminiModelChatTest_01#test 打出第一轮回复。