Commit d47437e6 authored by xiezhi's avatar xiezhi

fix makefile

parent 49028535
......@@ -55,11 +55,7 @@ run: install
# 停止命令
.PHONY: stop
stop: kill
# 强制杀死所有相关Java进程
.PHONY: kill
kill:
stop:
@echo "正在查找并杀死所有相关的Java进程..."
@PIDS=$$(ps aux | grep -E "java.*$(MAIN_CLASS)|java.*$(APP_NAME)" | grep -v grep | awk '{print $$2}'); \
if [ -n "$$PIDS" ]; then \
......@@ -74,72 +70,4 @@ kill:
echo "未找到相关的Java进程"; \
fi
@rm -f $(PID_FILE)
@echo "✅ 强制停止操作完成"
# 重启命令
.PHONY: restart
restart: stop run
# 查看状态
.PHONY: status
status:
@if [ -f "$(PID_FILE)" ]; then \
PID=$$(cat $(PID_FILE)); \
if ps -p $$PID > /dev/null 2>&1; then \
echo "✅ 服务器正在运行,PID: $$PID"; \
echo "端口: $(APP_PORT)"; \
echo "日志: $(LOG_FILE)"; \
else \
echo "❌ 服务器未运行(PID文件存在但进程不存在)"; \
rm -f $(PID_FILE); \
fi; \
else \
echo "❌ 服务器未运行"; \
fi
# 创建JAR文件
.PHONY: jar
jar: install
@echo "创建JAR文件..."
$(JAR) cfe $(JAR_FILE) $(MAIN_CLASS) -C $(CLASSES_DIR) .
@echo "JAR文件已创建: $(JAR_FILE)"
# 运行JAR文件
.PHONY: run-jar
run-jar: jar
@echo "运行JAR文件..."
$(JAVA) -jar $(JAR_FILE)
# 清理编译文件
.PHONY: clean
clean:
@echo "清理编译文件..."
rm -rf $(BUILD_DIR)
@echo "清理完成!"
# 显示帮助信息
.PHONY: help
help:
@echo "Java 11 HTTP 服务器项目"
@echo ""
@echo "可用命令:"
@echo " make install - 安装依赖并编译项目"
@echo " make run - 启动HTTP服务器(后台运行)"
@echo " make stop - 停止HTTP服务器(优雅停止)"
@echo " make kill - 强制杀死所有相关Java进程"
@echo " make restart - 重启HTTP服务器"
@echo " make status - 查看服务器状态"
@echo " make jar - 创建JAR文件"
@echo " make run-jar - 运行JAR文件"
@echo " make clean - 清理编译文件"
@echo " make help - 显示此帮助信息"
@echo ""
@echo "示例:"
@echo " make run # 启动服务器"
@echo " make status # 查看状态"
@echo " make stop # 优雅停止服务器"
@echo " make kill # 强制停止所有相关进程"
@echo " make restart # 重启服务器"
@echo ""
@echo "环境变量:"
@echo " APP_PORT_1 - 服务器端口(默认: 8080)"
@echo "✅ 停止操作完成"
......@@ -55,29 +55,8 @@ make install
# 启动HTTP服务器(后台运行)
make run
# 查看服务器状态
make status
# 停止服务器
make stop
# 强制停止所有相关进程
make kill
# 重启服务器
make restart
# 创建JAR文件
make jar
# 运行JAR文件
make run-jar
# 清理编译文件
make clean
# 查看帮助
make help
```
### 方法三:使用Docker
......@@ -109,21 +88,11 @@ curl http://localhost:8080/
# 输出:Hello, World!
```
### 查看服务器状态
```bash
make status
# 输出:
# ✅ 服务器正在运行,PID: 12345
# 端口: 8080
# 日志: /path/to/.logs/app.log
```
### 停止服务器
```bash
make stop
# 输出:
# ✅ 进程 12345 已被强制停止
# ✅ 服务器停止操作完成
# ✅ 所有相关Java进程已被强制停止
# ✅ 停止操作完成
```
## 代码说明
......@@ -139,18 +108,11 @@ HTTP服务器类包含以下功能:
### Makefile
提供了以下命令:
提供了以下核心命令:
- `install`: 检查Java版本并编译源代码
- `run`: 启动HTTP服务器(后台运行)
- `stop`: 停止HTTP服务器(直接调用kill)
- `kill`: 强制停止所有相关Java进程
- `restart`: 重启HTTP服务器
- `status`: 查看服务器运行状态
- `jar`: 创建可执行的JAR文件
- `run-jar`: 运行JAR文件
- `clean`: 清理编译生成的文件
- `help`: 显示帮助信息
- `stop`: 停止HTTP服务器(强制停止所有相关进程)
### Dockerfile
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment