diff --git a/Jenkinsfile b/Jenkinsfile index 286a7d2..554125d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,47 +16,19 @@ pipeline { // Docker相关环境变量 IMAGE_NAME = 'jenkins-demo' - IMAGE_TAG = "${BUILD_NUMBER}" - + IMAGE_TAG = "${BUILD_NUMBER}" // SonarQube配置 SONAR_HOST_URL = 'http://116.62.163.84:15010' SONAR_PROJECT_KEY = 'jenkins-demo' SONAR_TOKEN = 'squ_7e4217cabd0faae6f3b8ee359b3b8e2ac52eb69a' - } - // 移除tools配置,改用node内部的检测和安装 + } - stages { - stage('环境设置') { - steps { - echo '🔧 设置构建环境...' - script { - // 在node内部设置环境变量 - env.WORKSPACE_PATH = pwd() - - // 检测并设置Java环境 - try { - sh 'java -version' - echo '✅ Java环境检测成功' - } catch (Exception e) { - echo '⚠️ 使用系统默认Java环境' - } - - // 检测并设置Maven环境 - try { - sh 'mvn -version' - echo '✅ Maven环境检测成功' - } catch (Exception e) { - echo '⚠️ Maven未检测到,使用./mvnw' - env.MVN_CMD = './mvnw' - } - - if (!env.MVN_CMD) { - env.MVN_CMD = 'mvn' - } - } - } - } - + // 使用Jenkins中配置的工具(自动安装) + tools { + maven 'Maven-3.9.6' // 使用您在Jenkins中配置的Maven名称 + // JDK使用容器中已有的,不需要额外配置 + } + stages { stage('Checkout') { steps { echo '🔄 开始检出代码...' @@ -71,33 +43,41 @@ pipeline { echo "📋 Git提交ID: ${env.GIT_COMMIT_SHORT}" } - } - - stage('环境检查') { + } stage('环境检查') { steps { echo '🔍 检查构建环境...' - sh ''' - echo "Java版本:" - java -version - echo "Maven版本:" - mvn -version - echo "Git版本:" - git --version - ''' + script { + sh ''' + echo "=== Java版本 ===" + java -version + + echo "=== Maven版本 ===" + mvn -version + + echo "=== Git版本 ===" + git --version + + echo "=== 工作目录 ===" + pwd && ls -la + ''' + + // 设置Maven命令 + env.MVN_CMD = 'mvn' + echo "✅ 构建环境检查完成,Maven命令: ${env.MVN_CMD}" + } } } - - stage('编译') { + stage('编译') { steps { echo '🔨 开始编译项目...' - sh "${env.MVN_CMD} clean compile -DskipTests=true" + sh "mvn clean compile -DskipTests=true" } } stage('单元测试') { steps { echo '🧪 运行单元测试...' - sh "${env.MVN_CMD} test" + sh "mvn test" } post { always { @@ -124,10 +104,9 @@ pipeline { stage('代码质量扫描') { steps { echo '🔍 运行SonarQube代码扫描...' - script { - try { + script { try { sh """ - ${env.MVN_CMD} sonar:sonar \ + mvn sonar:sonar \ -Dsonar.projectKey=${SONAR_PROJECT_KEY} \ -Dsonar.host.url=${SONAR_HOST_URL} \ -Dsonar.login=${SONAR_TOKEN} \ @@ -141,11 +120,10 @@ pipeline { } } } - - stage('打包') { + stage('打包') { steps { echo '📦 开始打包应用程序...' - sh "${env.MVN_CMD} package -DskipTests=true" + sh "mvn package -DskipTests=true" } post { success {