WAR文件路径错误

main
ldl 5 months ago
parent 2e4306e329
commit a86def521d

25
Jenkinsfile vendored

@ -924,10 +924,31 @@ pipeline {
if exist "${tomcatWebapps}\\${appName}" rmdir /S /Q "${tomcatWebapps}\\${appName}"
echo 部署新 WAR 包...
copy /Y "target\\slms-web.war" "${tomcatWebapps}\\${appName}.war"
if exist "target\\web\\slms-1.0-SNAPSHOT.war" (
copy /Y "target\\web\\slms-1.0-SNAPSHOT.war" "${tomcatWebapps}\\${appName}.war"
echo ✓ 成功部署 WAR 包从 target\\web\\ 目录
) else (
if exist "target\\slms-web.war" (
copy /Y "target\\slms-web.war" "${tomcatWebapps}\\${appName}.war"
echo ✓ 成功部署 WAR 包从 target\\ 目录
) else (
echo ✗ 错误: 找不到 WAR 文件 (target\\web\\slms-1.0-SNAPSHOT.war 或 target\\slms-web.war)
exit /b 1
)
)
echo 更新数据库文件...
copy /Y "target\\library.db" "${tomcatBin}\\library.db"
if exist "target\\library.db" (
copy /Y "target\\library.db" "${tomcatBin}\\library.db"
echo ✓ 成功复制数据库文件
) else (
if exist "library.db" (
copy /Y "library.db" "${tomcatBin}\\library.db"
echo ✓ 成功复制数据库文件从根目录
) else (
echo ⚠️ 警告: 找不到 library.db 文件,应用可能无法正常工作
)
)
echo 启动 Tomcat 11...
set CATALINA_HOME=${tomcatHome}

@ -23,16 +23,42 @@
- 不适合大型Java项目的复杂构建需求
### 主要应用场景
- C/C++项目(传统领域)
- 简单脚本自动化
- 需要高度定制化的构建流程
 
### 生命周期
Make没有标准的生命周期概念但通常遵循以下构建流程
1. **依赖分析**: 解析Makefile中的依赖关系
2. **增量构建**: 只重新构建变更的文件
3. **目标执行**: 按依赖顺序执行规则
4. **清理**: 可选的清理操作
**典型执行顺序**:
```
make [target]
解析依赖关系
检查文件时间戳
执行变更的规则
完成目标
```
### Windows使用注意
- 需要安装MSYS2、Cygwin或MinGW提供make命令
- 文件路径使用正斜杠/而非反斜杠\
- 命令行工具兼容性问题较多
### 示例 (Makefile)
```makefile
# Makefile 示例
JAVAC = javac
@ -135,10 +161,57 @@ clean:
- 构建速度相对较慢
- 定制化程度不如Ant和Gradle
### 主要应用场景
- 企业级Java项目
- 需要标准化构建流程的团队开发
- Spring Boot、微服务架构项目
### 生命周期
Maven有三大内置生命周期每个生命周期包含多个阶段
**Clean Lifecycle** (清理生命周期):
- `pre-clean`: 执行清理前的工作
- `clean`: 清理上一次构建生成的文件
- `post-clean`: 执行清理后的工作
**Default Lifecycle** (默认生命周期):
- `validate`: 验证项目结构和配置
- `initialize`: 初始化构建状态
- `generate-sources`: 生成编译所需的源代码
- `process-sources`: 处理源代码
- `generate-resources`: 生成资源文件
- `process-resources`: 处理资源文件并复制到目标目录
- `compile`: 编译项目源代码
- `process-classes`: 处理编译后的文件
- `generate-test-sources`: 生成测试源代码
- `process-test-sources`: 处理测试源代码
- `generate-test-resources`: 生成测试资源
- `process-test-resources`: 处理测试资源
- `test-compile`: 编译测试源代码
- `process-test-classes`: 处理测试编译文件
- `test`: 运行测试
- `prepare-package`: 准备打包前的工作
- `package`: 打包编译后的代码
- `pre-integration-test`: 集成测试前的工作
- `integration-test`: 运行集成测试
- `post-integration-test`: 集成测试后的工作
- `verify`: 验证包是否有效
- `install`: 安装包到本地仓库
- `deploy`: 部署包到远程仓库
**Site Lifecycle** (站点生命周期):
- `pre-site`: 生成站点前的工作
- `site`: 生成项目站点文档
- `post-site`: 生成站点后的工作
- `site-deploy`: 部署站点到服务器
**执行顺序**:
```
mvn [phase]
激活指定生命周期
按顺序执行所有前序阶段
执行插件目标
完成构建
```
### 示例 (pom.xml)
```xml
@ -227,6 +300,54 @@ mvn clean install
- 多模块企业项目
- 需要复杂构建逻辑的项目
### 生命周期
Gradle没有预定义的生命周期但通过任务依赖形成构建流程
**标准构建流程**:
1. **初始化**: 解析settings.gradle和build.gradle
2. **配置**: 执行build.gradle脚本创建任务图
3. **执行**: 按依赖顺序执行任务
**核心生命周期任务**:
- `assemble`: 组装项目产物(编译、打包)
- `check`: 运行所有检查(测试、代码质量)
- `build`: 执行完整构建assemble + check
- `clean`: 清理构建产物
**Java插件生命周期任务**:
```
compileJava → processResources → classes → jar → assemble
testCompileJava → processTestResources → testClasses → test → check
```
**Android插件生命周期任务**:
```
preBuild → assembleDebug → assembleRelease → assemble
connectedDebugAndroidTest → connectedCheck → check
```
**执行顺序**:
```
gradle [task]
解析构建脚本
构建任务依赖图
按拓扑顺序执行任务
执行任务动作
完成构建
```
**任务类型**:
- 编译: JavaCompile, GroovyCompile
- 测试: Test, JacocoReport
- 打包: Jar, War, Zip
- 发布: Publish, Upload
- 文档: Javadoc, Groovydoc
### 示例 (build.gradle)
```gradle
plugins {
@ -289,7 +410,7 @@ gradle clean
| 学习难度 | 中等 | 高 | 中等 | 高 |
| 构建速度 | 快 | 中等 | 中等 | 快 |
| 平台支持 | 一般 | 优秀 | 优秀 | 优秀 |
| 生态系统 | 小 | 中等 | 大 | 大 |
| 生命周期 | 自定义规则 | Target依赖 | 标准阶段 | 任务依赖图 |
| 主要优势 | 灵活定制 | 平台无关 | 标准化 | 现代化 |
## Windows环境推荐

Loading…
Cancel
Save