@shundoo-ai/dsh-cosmic 1.0.4-alpha.6 → 1.0.4-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -189,21 +189,21 @@ cd <cwd>
|
|
|
189
189
|
VER=$(grep -oE 'gradle-[0-9.]+-bin' gradle/wrapper/gradle-wrapper.properties | head -1 | sed 's/gradle-//;s/-bin//')
|
|
190
190
|
GRADLE=$(find ~/.gradle/wrapper/dists/gradle-$VER-bin -type f -path '*/bin/gradle' 2>/dev/null | head -1)
|
|
191
191
|
GRADLE_USER_HOME=<cwd>/.gradle/user-home "$GRADLE" :<模块>:build -x test
|
|
192
|
-
# 真编译(验证工具链 /
|
|
192
|
+
# 真编译(验证工具链 / 排除缓存欺骗):加 --no-build-cache --rerun-tasks
|
|
193
193
|
GRADLE_USER_HOME=<cwd>/.gradle/user-home "$GRADLE" :<模块>:clean :<模块>:build -x test --no-build-cache --rerun-tasks
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
- 增量构建(内容感知:改几行代码约 5-10 秒,无改动约 1 秒)。
|
|
197
|
-
- ⚠️ **`clean`
|
|
197
|
+
- ⚠️ **`clean` 也不等于真编译**(平台中立):本模板 `gradle.properties` 带 `org.gradle.caching=true`,`clean` 后 `compileJava` 会直接 `FROM-CACHE` 还原 class(macOS 实测 **879ms**、Windows 实测约 **2 秒** 即跑完,javac 一次未调用)。**要真编译必须加 `--no-build-cache`**(对应 Windows 脚本的 `-NoCache`,逻辑同源)。
|
|
198
|
+
- ⚠️ **「伪成功构建」陷阱**(平台中立):`compileJava` 处于 `UP-TO-DATE` 时 Gradle **根本不加载编译器**,缺 tools.jar 也不报错 → 看到 `BUILD SUCCESSFUL` + jar 正常产出,**但里面是旧字节码**。首次接入务必用上面的真编译命令验证一次。
|
|
199
|
+
- **真编译判据(三条同时看)**:① Gradle 输出里 `compileJava` 后面**没有** `UP-TO-DATE` / `FROM-CACHE`;② stderr 出现 javac 的 `deprecation` / `unchecked` 提示;③ `build/classes` 下 class 的 mtime 是**刚刚**(旧字节码的特征是 class 时间戳停留在上一次真编译的时刻)。
|
|
198
200
|
- 产物在 `<模块>/build/libs/*.jar`(本环境 `code/yun/sd-khxty-yun/build/libs/sd-khxty-yun-1.0.0.jar`)。
|
|
199
201
|
- ⚠️ 产 jar **只认 gradle 命令行**:IDEA MCP `build_project` 默认增量、源码未变会跳过(`isSuccess:true` 但 jar 不更新);勿用 `buildJar`/`deployJar`(那是冷启动拷贝到 lib/cus,热部署不需要)。
|
|
200
202
|
|
|
201
203
|
> **Windows 必读(实测踩坑,失败一次排查很久)**
|
|
202
204
|
> - **必须显式设 `JAVA_HOME` 指向 JDK(不是 JRE)**:Windows 注册表 `HKLM\SOFTWARE\JavaSoft\Java Development Kit` 的 `JavaHome` 会被 JRE 安装包改写成 `...\jre1.8.0_481`,Gradle 采信它 → `java.home` 指向 JRE → 报 `Could not find tools.jar`。显式 `$env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_XXX"`
|
|
203
205
|
> - **Gradle 版本必须按 `gradle/wrapper/gradle-wrapper.properties` 锁定**,不要「取 `~/.gradle/wrapper/dists` 下最新」—— 机器上可能同时装了要求 Java 22 的新版 Gradle,会直接把构建带偏。
|
|
204
|
-
> - ⚠️
|
|
205
|
-
> - ⚠️ **`-Clean` 也不等于真编译(实测)**:本模板 `gradle.properties` 带 **`org.gradle.caching=true`** → `clean` 之后 `compileJava` 会直接 **`FROM-CACHE`** 还原 class(实测 `-Clean` 全程 **2 秒**跑完、javac 一次都没调用),工具链问题照样被掩盖。要真编译必须加 **`-NoCache`**(= `--no-build-cache --rerun-tasks`,macOS/Linux 同源,见职责③构建命令)。
|
|
206
|
-
> **真编译判据(三条同时看)**:① Gradle 输出里 `compileJava` 后面**没有** `UP-TO-DATE` / `FROM-CACHE`;② stderr 出现 javac 的 `deprecation` / `unchecked` 提示;③ `build/classes` 下 class 的 mtime 是**刚刚**(旧字节码的特征是 class 时间戳停留在上一次真编译的时刻)。
|
|
206
|
+
> - ⚠️ **缓存会掩盖工具链问题**:`UP-TO-DATE`(`clean` 后则直接 `FROM-CACHE`)时 Gradle 根本不加载编译器,缺 tools.jar 也不报错 → 首次接入务必用职责③的真编译命令验证一次;Windows 脚本对应 `-NoCache`。
|
|
207
207
|
>
|
|
208
208
|
> 完整分析见 `cosmic-dev-best-practices/references/cosmic-hotdeploy-build-slow-windows.md` §4.3 / §4.7。Windows 上直接用上面「Windows:一条命令走完全程」的封装脚本即可,它已内置这些约束。
|
|
209
209
|
|