我正在CentOS Linux 7.3.1611版服务器上使用Jenkins 2.73-1.1版。
服务器上有3个不同版本的JDK:
[root @ jenkins java] # ll
total 12
lrwxrwxrwx. 1 root root 16 27 Apr 16.25 default -> / usr / java / latest
drwxr-xr-x. 8 root root 4096 27 Mar 2013 jdk1.6.0_45
drwxr-xr-x. Root root 4096 11 Apr 2015 jdk1.7.0_80
drwxr-xr-x. 9 root root 4096 27 Apr 16.25 jdk1.8.0_131
lrwxrwxrwx. 1 root root 22 27 apr 16.25 latest -> /usr/java/jdk1.8.0_131
如下图所示,Jenkins使用的是JDK1.8.0131版本,在我的项目中我指定使用JDK7。
Jenkins设置图像2
当我尝试编译项目(mvn clean deploy
)时,生成失败,并且在日志中看到以下错误:
[沃达丰]$/usr/java/jdk1.7.0_80/bin/java-cp/var/lib/JENKINS/plugins/maven-plugin/web-inf/lib/maven3-agent-1.11.jar:/opt/apache-maven-3.0.4/boot/plexus-classworlds-2.4.jar错误:Maven项目必须以高于或等于主程序所需最低版本的Java版本启动。错误:使用Maven JDK工具链(插件)用旧的JDK构建Maven项目。错误:重试从Java并将编译/测试属性设置为指向/usr/Java/jdk1.7.0_80。错误:
为什么Jenkins不使用JDK7?
正如jenkins主页的maven project plugin所记录的:
Jenkins>=2.54需要Java8,因此必须使用Java>=8启动Maven作业
幸运的是,您的StackTrace中刚刚提到了最好的解决方法:
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>1.7</version>
<vendor>openjdk</vendor>
</provides>
<configuration>
<jdkHome>/usr/lib/jvm/java-7-openjdk-amd64</jdkHome>
</configuration>
</toolchain>
<toolchain>
<type>jdk</type>
<provides>
<version>1.8</version>
<vendor>openjdk</vendor>
</provides>
<configuration>
<jdkHome>/usr/lib/jvm/java-8-openjdk-amd64</jdkHome>
</configuration>
</toolchain>
[...]
</toolchains>
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>1.7</version>
<vendor>openjdk</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
</plugins>
</build>
</project>
问题内容: 今天,我将本地Glassfish服务器升级到3.1.1,以准备将公司的服务器升级到相同版本。我正在尝试将我的Web服务项目转换为与新服务器兼容,并且遇到了障碍。 在我耳朵的pom文件中,我以前将webapp和ejb都列为依赖项。在webapp的pom中,我也将ejb列为依赖项。尝试将此配置部署到Glassfish 3.1.1时,出现以下错误: 部署期间发生错误:部署应用程序时发生异常[
我的日志猫: 2022-07-29 21:42:03.128 24303-24303/com.example。newcadviewerapp E/AndroidRuntime:致命异常:主进程:com.example。newcadviewerapp,PID:24303 java.lang.RuntimeException:无法启动活动组件信息{com.example.newcadviewerapp
这是我的ProdottoController: Prodotto实体: 这是视图(Freemarker): 当我尝试将值更新到表中时,出现以下错误: FreeMarker模板错误(调试模式;在生产中使用RETHROW!):以下内容已评估为null或缺失:==
My AccountEntityToAccount方法出现错误,返回类型Transaction是抽象类或接口。提供非抽象/非接口结果类型或工厂方法。AccountEntityToAccount(AccountEntity AccountEntity); 我怎样才能解决这个问题。我的事务类应该是抽象的,我无法更改抽象关键字
我必须处理不同的项目,其中一个是使用Java 8,另一个是Java 17。上周我在使用Java 17,现在我正在尝试将我的配置还原为使用Java 8。 这些是我的配置 我也删除了~/. m2内的所有文件夹。 我在IntelliJ中的配置是: 项目结构 SDK:OpenJDK 1.8 语言级别:SDK默认 项目结构 模块SDK:项目SDK(OpenJDK 1.8) 首选项|构建、执行、部署|编译器|