Skip to main content

personal-project-runner

项目启动管理技能,支持Java Spring Boot和Vue项目的启动、重启、关闭操作,保持原有端口不变

Quellinformationen

Repository
bage2014/study
Letzte Quellaktivität
26. Juni 2026 um 00:24
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
646
Forks
113

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
personal-project-runner
description
项目启动管理技能,支持Java Spring Boot和Vue项目的启动、重启、关闭操作,保持原有端口不变
trigger
需要启动、重启或关闭项目时
disable-when
项目已停止且无需启动时
category
personal
tags
["runner","start","restart","stop","java","vue","spring","port"]
# personal-project-runner ## 功能描述 项目启动管理技能,支持 Java Spring Boot 和 Vue 项目的启动、重启、关闭操作。自动检测项目类型,保持原有端口不变,支持后台运行和日志查看。 ## 触发条件 - 需要启动项目时 - 需要重启项目时(已启动则先停止再启动) - 需要关闭项目时 - 需要查看项目运行状态时 ## 何时使用 - 开发过程中需要频繁启动/重启项目时 - 项目启动失败需要排查时 - 需要保持端口不变的重启时 - 需要后台运行项目时 ## 何时不使用 - 项目已正常运行且无需操作时 - 需要修改端口配置时(请先修改配置文件) - 仅需要查看日志时(可直接查看日志文件) ## 核心功能 ### 1. 项目类型检测 - 自动识别 Java Spring Boot 项目(检测 pom.xml、build.gradle) - 自动识别 Vue 项目(检测 package.json、vue.config.js) - 支持自定义项目类型配置 ### 2. 端口检测与管理 - 自动检测项目配置的端口号 - 启动前检查端口是否被占用 - 保持原有端口不变,不自动修改配置 ### 3. 启动操作 - 若项目未启动:直接启动 - 若项目已启动:先停止再启动,提示"已重新启动" ### 4. 关闭操作 - 安全停止正在运行的进程 - 支持按端口号停止 - 支持按进程名停止 ### 5. 状态监控 - 查看项目运行状态 - 查看端口占用情况 - 查看进程信息 ## 支持的项目类型 ### Java Spring Boot | 特征 | 说明 | |------|------| | 配置文件 | `application.yml`、`application.properties` | | 构建工具 | Maven(pom.xml)、Gradle(build.gradle) | | 默认端口 | 8080 | | 启动命令 | `mvn spring-boot:run`、`java -jar xxx.jar` | ### Vue | 特征 | 说明 | |------|------| | 配置文件 | `package.json`、`vue.config.js`、`vite.config.js` | | 构建工具 | npm、yarn、pnpm | | 默认端口 | 8080(Vue CLI)、5173(Vite) | | 启动命令 | `npm run serve`、`npm run dev`、`pnpm dev` | ## 操作流程 ### 启动流程 ``` 检测项目类型 → 读取端口配置 → 检查端口占用 → 启动项目 → 验证启动成功 ``` ### 重启流程 ``` 检测运行状态 → 若已运行则停止 → 等待进程退出 → 启动项目 → 提示"已重新启动" ``` ### 关闭流程 ``` 检测运行状态 → 若已运行则停止 → 等待进程退出 → 提示"已关闭" ``` ## 输入参数 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | action | String | 是 | 操作类型:start/restart/stop/status | | projectPath | String | 否 | 项目路径,默认当前目录 | | projectType | String | 否 | 项目类型:java/vue,自动检测时留空 | | port | Integer | 否 | 端口号,自动检测时留空 | | mode | String | 否 | 运行模式:foreground/background,默认 background | | buildTool | String | 否 | 构建工具:maven/gradle/npm/yarn/pnpm | ## 输出格式 ```json { "action": "restart", "projectType": "java", "port": 8080, "status": "success", "message": "项目已重新启动,端口:8080", "processId": 12345, "logs": "/path/to/logs", "timestamp": "2024-01-15T10:00:00Z" } ``` ## 状态码定义 | 状态码 | 说明 | |--------|------| | `running` | 项目正在运行 | | `stopped` | 项目已停止 | | `starting` | 项目启动中 | | `stopping` | 项目停止中 | | `not_found` | 未检测到项目类型 | | `port_conflict` | 端口冲突 | | `build_failed` | 构建失败 | ## 端口检测规则 ### Java Spring Boot 端口读取 按优先级读取: 1. `application.yml` 中的 `server.port` 2. `application.properties` 中的 `server.port` 3. 默认值:8080 ### Vue 端口读取 按优先级读取: 1. `vue.config.js` 中的 `devServer.port` 2. `vite.config.js` 中的 `server.port` 3. `package.json` scripts 中的端口参数 4. 默认值:Vue CLI 8080,Vite 5173 ## 进程管理 ### 查找进程 ```bash # 按端口查找 lsof -i :8080 -t # 按进程名查找 pgrep -f "spring-boot" pgrep -f "node" ``` ### 停止进程 ```bash # 优雅停止(优先) kill -TERM <pid> # 强制停止(超时后) kill -9 <pid> ``` ## 使用流程 ### 启动项目 ```bash # 自动检测项目类型和端口 skills-run start # 指定项目路径 skills-run start --project-path /path/to/project # 指定项目类型 skills-run start --project-type java skills-run start --project-type vue ``` ### 重启项目 ```bash # 自动检测并重启 skills-run restart # 指定项目路径和类型 skills-run restart --project-path /path/to/project --project-type java ``` ### 关闭项目 ```bash # 自动检测并关闭 skills-run stop # 指定端口关闭 skills-run stop --port 8080 ``` ### 查看状态 ```bash # 查看当前目录项目状态 skills-run status # 查看指定端口状态 skills-run status --port 8080 ``` ## 后台运行配置 ### Java Spring Boot ```bash # 后台运行并输出日志 nohup mvn spring-boot:run > logs/console.log 2>&1 & # 或使用 jar 包 nohup java -jar target/app.jar > logs/console.log 2>&1 & ``` ### Vue ```bash # 后台运行 nohup npm run serve > logs/console.log 2>&1 & # 或使用 pm2 pm2 start npm -- run serve ``` ## 日志管理 ### 日志目录结构 ``` project-root/ ├── logs/ │ ├── console.log # 控制台日志 │ ├── spring.log # Spring Boot 日志 │ └── error.log # 错误日志 ``` ### 查看日志 ```bash # 实时查看日志 tail -f logs/console.log # 查看最后100行 tail -n 100 logs/console.log # 搜索错误 grep -i error logs/console.log ``` ## 最佳实践 1. **端口优先**:启动前检查端口占用,避免启动失败 2. **优雅停止**:先尝试 `kill -TERM`,超时后再强制停止 3. **后台运行**:开发环境建议后台运行,避免终端关闭导致进程终止 4. **日志输出**:确保日志输出到文件,方便排查问题 5. **环境检查**:启动前验证 JDK/Node 版本是否符合项目要求 ## 配置要求 无需额外配置,自动检测项目类型和端口。 ## 扩展指南 ### 添加新项目类型 1. 在项目类型检测逻辑中添加新类型识别 2. 添加对应的端口读取规则 3. 添加启动/停止命令 4. 更新文档说明 ### 自定义启动命令 在项目根目录创建 `.runner.json` 配置文件: ```json { "projectType": "java", "port": 8080, "buildTool": "maven", "startCommand": "mvn spring-boot:run", "stopPattern": "spring-boot" } ``` ## 常见问题 ### Q: 端口被占用怎么办? A: 先停止占用端口的进程,或修改项目配置文件中的端口号。本技能不会自动修改端口配置。 ### Q: 如何确认项目是否启动成功? A: 检查进程是否存在,访问 http://localhost:port 确认服务响应。 ### Q: 后台运行后如何停止? A: 使用 `skills-run stop` 或手动 `kill` 进程。 ### Q: 日志文件在哪里? A: 默认在项目根目录的 `logs/console.log`。 参考经验:启动/重启项目时,先识别并结束旧进程(按端口/进程名),再确认运行环境,最后启动项目。
Auf GitHub ansehen