升级gradle后。需要修改jenkin 编译java版本从1.8 到11
错误提示
* What went wrong:
A problem occurred evaluating project ':App'.
> Failed to apply plugin 'com.android.internal.application'.
> Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
You can try some of the following options:
- changing the IDE settings.
- changing the JAVA_HOME environment variable.
- changing `org.gradle.java.home` in `gradle.properties`.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
原因
因为项目升级了gradle 到7.0+
所以需要使用java11去运行gradle编译项目。
本地可以通过Android studio到gradle home 设置修改.
但jenkins需要修改相关配置才可以使用测试,并且不影响之前使用java 1.8的项目编译打包。
安装Java11
查看服务器的JDK版本和安装位置
alternatives --config java
使用alternatives --config java命令,这条命令本身是选择JDK版本,当然选择的时候,就能看到当前服务器可以使用的JDK版本,无论是系统自带还是人工安装的。每个JDK之前都有一个序号,选择不同的序号,就是选择对应的JDK。
There are 4 programs which provide 'java'.
Selection Command
-----------------------------------------------
*+ 1 /usr/java/jdk1.8.0_162/jre/bin/java
2 /usr/java/jre1.8.0_162/bin/java
可以看到之前服务器中只有jdk1.8.0
并且是安装在/usr/java目录中。
将下载的jdk压缩包,解压到/usr/java目录中.
sudo tar -xvzf zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz -C /usr/java/
目录要和上面java的报错一直,都放/usr/java
不然会出现权限问题。jenkins会访问不了.
安装上面的java11到系统:
alternatives --install /usr/bin/java java /usr/java/zulu11.56.19-ca-jdk11.0.15-linux_x64/bin/java 3
配置Jenkins使用Java11编译
修改Jenkins的编译脚本:
pipeline {
agent any
// The variables defined in environment block can be only used in pipeline block
environment {
// Remark:
// If the value of environment variable is empty string,
// the Environment Variable will not be defined,
// For more details, please refer to:
// https://stackoverflow.com/questions/52316089/jenkins-pipeline-define-and-set-variables
JAVA_HOME='/usr/java/zulu11.56.19-ca-jdk11.0.15-linux_x64'
}
加入JAVA_HOME='/usr/java/zulu11.56.19-ca-jdk11.0.15-linux_x64'
这一行之后,后面执行命令就会用这里配置的java-home来执行Gradle.
又可以在项目的gradle.properties中配置
#org.gradle.java.home=$your java home path
也可以实现.
这时候再去Jenkins中执行build action.
会发现可以成功编译。
升级gradle后。需要修改jenkin 编译java版本从1.8 到11的更多相关文章
- Linux系统入门教程:如何在 Linux 中修改默认的 Java 版本
提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...
- Mac下修改默认的Java版本
今天在安装Elicpse IDE的时候,发现提示安装的Java版本不支持,于是在官方去下载了Jre最新版本并安装,在安装完过后再次打开Elicpse发现提示还是不正确,如果用Google查询到一些资料 ...
- 查看编译后的calss文件编译jdk版本
使用UtralEdit或者sublime text打开编译后的.class文件, 其中cafe babe为magic number(魔数),标识这个文件是java的class文件. 0033转换成10 ...
- (转)更新Java final常量后,请重新编译你的class
程序中使用的各种常量用一个类来统一管理,类似: public class AppConst { public static final String STR_1 = "String1&quo ...
- 使用 Gradle 编译 Java 项目时报错: Could not find Tools.jar
在使用Android studio进行编译成jar的时候,遇到Gradle 编译错误,听前辈们说是jdk的版本不对,于是乎就更新了一下jdk, 然而可能是我重新安装jdk的时候改变了安装路径, 在pr ...
- Java Web部署到tomcat后,使用动态编译无法找到相关类的解决方案
一.问题 动态编译java文件时(这个java文件虽引用了第三方jar包),如果这个过程发生在java命令行程序中,则正常编译.如果发生在JavaWeb中,然后此Java部署到Tomcat之后,执行动 ...
- 【转载】Gradle学习 第七章:Java快速入门
转载地址:http://ask.android-studio.org/?/article/22 7.1. The Java plugin(Java插件) As we have seen, Gradle ...
- 使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
使用maven编译Java项目 时间 2014-07-17 17:42:37 Way Lau's Blog 原文 http://www.waylau.com/build-java-project- ...
- CentOS 6.5升级Python后yum不可用的解决方案
因开发需要,今天把CentOS 6.5自带的Python2.6.6升级到了Python2.7.3.按照如下步骤进行升级 1.查看当前系统python的版本 python -V 2.下载2.7.3版本的 ...
随机推荐
- 为什么需要域驱动设计DDD?
我们需要 DDD 的因素 – 微服务面试问题
- 用maven建立一个工程5
在命令行里面输入cd myapp再按回车 再输入mvn compile再按回车 再输入 cd target按回车 再输入cd../按回车 再输入mvn package按回车 最后输入java -cla ...
- 数仓建模—OneID
今天是我在上海租房的小区被封的第三天,由于我的大意,没有屯吃的,外卖今天完全点不到了,中午的时候我找到了一包快过期的肉松饼,才补充了1000焦耳的能量.但是中午去做核酸的时候,我感觉走路有点不稳,我看 ...
- pandas学习总结
什么是pandas pandas数据读取 03. Pandas数据结构 Pandas查询数据的几种方法
- PC端操作系统、移动端操作系统、嵌入式操作系统
左侧部分已是历史的操作系统,右侧的还是活跃的操作系统.安卓系统Android 是Google开发的基于Linux平台的开源手机操作系统.它包括操作系统.用户界面和应用程序-- 移动电话工作所需的全部软 ...
- PCB常用低速、高速板材参数性能(2)
- input 弹起数字键盘的那些坑
input ios 踩的大坑 前言:最近有个需求要将全平台的交易密码由原来的 6-16位 复杂密码改为6位纯数字交易密码,涉及到非常多的业务场景,但修改起来也无非两种:设置交易密码,使用交易密码 设置 ...
- python---导入模块和包
导入模块和包 导入模块 import的过程中发生了哪些事情? 寻找模块 如果找到,开辟一块空间,执行这个模块 把这个模块中用到的名字都收录到开辟的空间中 创建一个变量来引用这个模块的空间 注意: 模块 ...
- 网络编程学习——Linux epoll多路复用模型
前言 后端开发的应该都知道Nginx服务器,Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器.后端部署中一般使用的就是Nginx反向代理技术. ...
- redis 指定db库导入导出数据
最近根据之前的项目重新改编一个新的项目,发现上一个项目的搭建者,把一些区域权限和划分放在redis上存储,因此不得不照搬过来,所以搜索一下相关如何做的 发现一个比较简单的做法,记录一下操作过程,方便以 ...