<!-- generated-by: gsd-doc-writer -->
# 环境与依赖准备

Core 是 Maven 库聚合，不能直接 `java -jar` 启动。先运行不依赖业务数据库的框架示例，再进入应用装配。

## 工具链

本轮文档验证使用 JDK 25、Maven 3.9.15；当前 effective POM 的 `java.version` 和 `maven.compiler.release` 均为 17。编译目标与执行 Maven 的 JVM 是两件事，本轮未宣称已经完成 JDK 17 运行兼容认证。Spring Boot parent 的默认 Java 属性与本地实际 effective POM 可能不同，应分别检查编译目标和 Maven 使用的 JVM。

在 Core 根目录执行：

```bash
java -version
mvn -version
mvn help:effective-pom -Doutput=target/effective-pom.xml
```

在 effective POM 中核对 Spring Boot 版本、`maven.compiler.release` 和 compiler plugin。不要只根据当前 shell 的 `java.version` 推导编译目标，也不要把另一台机器的 JDK 路径复制进项目命令。

当前没有 Maven wrapper。选择正确 JDK 后，让 `mvn` 指向安装的 Maven；本教程命令不固定操作系统安装路径。

文档结构检查需要 Python 3.9 或更新版本（仅使用标准库）。HTTP 联调示例使用支持 `--fail-with-body` 的 curl 7.76.0 或更新版本，登录示例还需要 jq。

## 仓库布局

```text
工作区/
├── design/                         # 跨域标准、业务需求、SQL
└── java/
    ├── ineed-parent/
    ├── ineed-core/
    ├── ineed-modules-parent/
    ├── ineed-modules/ineed-config/
    ├── ineed-project-parent/
    └── ineed-projects/ineed-dev/
```

从 Core 根目录建立本地变量，后续命令沿用：

```bash
INEED_CORE_ROOT="$PWD"
INEED_JAVA_ROOT="$(cd .. && pwd)"
export INEED_CORE_ROOT INEED_JAVA_ROOT
```

独立拿到 Core 也可以阅读和运行框架测试；真实业务教程需要同版本的 config、design、dev 及其依赖仓库。不要在 Core 中创建这些仓库的空替代目录。

## Parent、BOM 与构建顺序

1. `ineed-parent` 提供公共构建配置。Core 根 POM 的 parent 使用空 `relativePath`，从 Maven 仓库解析；编辑旁边的 parent 文件不会自动生效。
2. `ineed-core` 构建框架制品和 BOM。
3. `ineed-modules-parent` 以及所需业务域构建业务模块。
4. `ineed-project-parent` 与具体启动器装配应用。

初次构建且对应制品尚未安装时，先安装 parent，再构建所需 Core 路径：

```bash
mvn -f "$INEED_JAVA_ROOT/ineed-parent/pom.xml" -N install
mvn -f "$INEED_CORE_ROOT/pom.xml" \
  -pl ineed-core-tests/ineed-core-test-webmvc,ineed-core-tests/ineed-core-test-webflux \
  -am test
```

`-am` 只补当前 reactor 内依赖；它不会遍历旁边的 Git 仓库。业务应用缺少制品时按其 POM 安装对应模块；只安装 BOM 不会安装所有被它管理版本的 jar。

## 下一步

[第一个业务模块](first-module.md)从可执行框架链路开始，再对应真实分类模块。数据库、Redis、权限和 HTTP 运行步骤见[运行与验证](run-and-verify.md)。
