我们正在尝试从Jenkins构建和部署maven工件到我们的Nexus Repository Manager中,但是我们在构建过程中遇到了编译错误。 这是我们得到的错误。!
错误]无法执行目标 org.apache.maven.plugins:Maven的编译器插件:3.5.1:编译 项目studentapp上的(default-compile):编译失败ERROR]否 在此环境中提供编译器。也许你正在运行 JRE而不是JDK? [ERROR]编译错误:[INFO] -------------------------------------------------- ----------- [ERROR]此环境中未提供编译器。也许你在跑步 在JRE上而不是JDK上?
这是我们的 pom.xml 文件。
<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>com.jdevs</groupId>
<artifactId>studentapp</artifactId>
<version>2.5-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
</plugins>
</build>
<distributionManagement>
<repository>
<id>deployment</id>
<name>Internal Releases</name>
<url>http://rig.eastus.cloudapp.azure.com:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>deployment</id>
<name>Internal Snapshot Releases</name>
<url>http://rig.eastus.cloudapp.azure.com:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<type>maven-plugin</type>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-webdav</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-guice</artifactId>
<version>2.1.7</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>3.5.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
答案 0 :(得分:1)
重新配置 Jenkins 。从主页转到管理插件,然后转到全局工具配置。使用JDK文件夹的正确路径重新实现JAVA_HOME字段。
答案 1 :(得分:0)
您需要在Jenkins配置中定义JDK安装路径。此外,如果您使用主从配置,则需要确保特定的JDK安装(在同一位置)与Jenkins配置中定义的相同。 ANT和Maven安装也是如此。
答案 2 :(得分:0)
至少有两个其他来源表明,对于远程代理,您需要在节点配置中为指向java.home
的环境变量 指向JAVA_HOME目录(不仅仅是{{1 }}或类似的内容。
导航至%JAVA_HOME%
,然后单击远程节点旁边的配置图标。在此处,向下滚动至“节点属性”,在Jenkins > Manage Jenkins > Manage Nodes
的复选框中打勾,并为名称定义Environment Variables
,并为值定义JDK的路径,例如java.home
这是我最终要做的,即使在构建代理服务器上发现所有系统环境变量都正确并且c:\Program Files\Java\jdk1.8.0_181
和java -version
都在正确报告之后。
我意识到OP没有指定“主控”或“远程”,但是希望这对偶然发现此问与答的人有所帮助。
此消息提供了第一个线索,但没有解释:https://www.pgs-soft.com/blog/oops-jenkins-slave-maven-not-working/
我无法追踪我在谷歌搜索时发现的关于此修复程序的其他提及。