03月22日
一、今日完成情况
- 完成服务器的基本项目和功能的配置
- 完成java环境的服务器同步,项目关闭笔记导出[[#四、研究生级 Java 项目工程化管理方案]]
二、今日感悟
- 核心业务数据:
- 今日工作总结:
- 放假随便干点
- 明日工作计划:
- 今日学习成长:
三、备注
- 无
四、研究生级 Java 项目工程化管理方案
针对 4G 内存轻量级服务器与 M4 MacBook 的“组合拳”开发模式,总结以下规范:
1. 核心思想:本地“轻量写”,云端“标准跑”
- 弃用 IntelliJ 远程后端:不在服务器部署 Headless IDEA,将宝贵的 4G 内存留给 JVM 和 MongoDB。
- 利用 SFTP 实时镜像:通过 IDEA 的
Deployment功能,实现Cmd + S后代码瞬间同步到云端。 - 手动/自动化 Maven 触发:不依赖不稳定的“Run on SSH”插件,直接在服务器终端使用原生 Maven 命令运行,确保环境透明、可控。
2. 标准化工程结构 (Standard Maven Layout)
为了让项目具备长远的扩展性(如引入 MongoDB 驱动),必须摒弃散装 .java 文件,统一采用 Maven 结构:
- 根目录:必须存放
pom.xml(定义项目灵魂)。 - 源码路径:代码必须存放在
src/main/java/下。 - 包名规范:包名(Package)必须与文件夹层级严格对应(如
io.github.luduihang.learning.list)。
3. 环境管理:SDKMAN! 统一链路
- 多版本共存:利用
sdk install java 21.x.x和sdk install maven快速构建环境。 - 路径引用:在 IDEA 远程配置或环境变量中,优先使用
~/.sdkman/candidates/java/current这一软链接,确保 JDK 升级后配置无需重改。
4. 生产级运行指令 (The “Golden Command”)
进入服务器项目根目录后,统一使用以下指令进行编译运行:
mvn clean compile exec:java -Dexec.mainClass="完整包名.类名"
clean:清理旧的字节码,防止缓存干扰。compile:验证语法并生成.class文件。exec:java:在当前 JVM 进程中启动程序,相比java -cp方式能自动处理复杂的第三方依赖。
mvn clean compile exec:java -Dexec.mainClass="io.github.luduihang.learning.list.MyDoubleLinkedList"
5. 进阶工作流建议 (Workflow)
- 依赖管理:需要连接 MongoDB 时,直接在本地修改
pom.xml增加dependency,同步后云端 Maven 会自动下载。 - Git 协同:将
src和pom.xml纳入版本控制,服务器上的target目录必须加入.gitignore。 - 监控:运行程序时开启
top或htop,观察 4G 内存服务器的 Heap 空间使用情况,必要时在 Maven 运行时加入内存限制参数。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com