• 升级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.
    会发现可以成功编译。

  • 相关阅读:
    LeetCode简单题之回环句
    Qt学习总结之QDateTimeEdit
    三维重建之三维空间点集拟合圆,获取圆心及半径
    Kung Fu Frog
    科技云报道:不卷自研大模型,金山办公如何创新生成式AI?
    Qt小项目2 图片查看器
    二分查找的讲解
    腾讯云轻量2核4G5M可容纳多少人访问?
    关于Vue2的生命周期会问到哪些面试题?
    一本通1073;津津的储蓄计划
  • 原文地址:https://www.cnblogs.com/ace666/p/16246006.html