首页 > 解决方案 > Jenkins 显示“无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) 编译失败”

问题描述

我在spring工具中开发了简单的maven项目。我在 jenkins 中部署了代码并为该作业创建了一个管道。但是 jenkins 编译失败。我在 jenkins 中正确配置了 JDK。

它显示“此环境中未提供编译器。也许您在 JRE 而不是 JDK 上运行?

无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project course-api: Compilation failure”

<project 
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>io.javabrains.springbootquickstart</groupId>
      <artifactId>employee-api</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <name>java brains employee api</name>
       <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.4.RELEASE</version>
    </parent>

    <dependencies>
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <properties>
    <java.version>1.8</java.version>
    </properties>
    </project>

我的詹金斯管道是

node{
def mvnHome
stage('git checkout process'){
  echo 'started checkout'
  git 'https://github.com/prakash9707/employee'
  echo 'completed sucessfully'
}

stage('compile package'){
mvnHome = '/opt/apache-maven/bin'
sh "${mvnHome}/mvn package"
echo 'started compiling'
}
}

标签: mavenspring-bootjenkinsjenkins-pipeline

解决方案


尝试使用 withMaven() 管道 Maven 插件,而不是显式设置 Maven 进行构建。

withMaven(
        // Maven installation declared in the Jenkins "Global Tool Configuration"
        maven: 'M3',
        // Maven settings.xml file defined with the Jenkins Config File Provider Plugin
        // Maven settings and global settings can also be defined in Jenkins Global Tools Configuration
        mavenSettingsConfig: 'my-maven-settings',
        mavenLocalRepo: '.repository') {

      // Run the maven build
      sh "mvn clean install"

    } // withMaven will discover the generated Maven artifacts, JUnit Surefire & FailSafe & FindBugs reports...

参考这里


推荐阅读