一、jdk动态切换
下载jdk8 jdk15 jdk18
创建bat
@echo off
@echo ------------------------------------------------
@echo enter the version you want to change:
@echo options version
@echo 8 JDK8
@echo 15 JDK15
@echo 18 JDK18
@echo ------------------------------------------------
set /P choose=please enter your choice:
IF "%choose%" EQU "8" (
setx "JAVA_HOME" "%JAVA8_HOME%" /m
echo "JAVA_HOME" has been modified to jdk8
)ELSE IF "%choose%" EQU "15" (
setx "JAVA_HOME" "%JAVA15_HOME%" /m
echo "JAVA_HOME" has been modified to jdk15
)ELSE IF "%choose%" EQU "18" (
setx "JAVA_HOME" "%JAVA18_HOME%" /m
echo "JAVA_HOME" has been modified to jdk18
)
pause
以管理员身份运行bat,动态切换jdk版本。
es编译要求jdk版本比较高。编译完成后即可将jdk版本降低到8。高版本向下兼容模式,运行时使用低版本jdk跑,就不会影响其他的项目使用低版本8编译了。
idea 配置如下:
全局搜索 "repositories {", 加上mavenLocal和阿里镜像。
build等待success
二. gradle编译报错:
2.1Could not find method compile() for arguments [minimum runtime classes] on object
gradle与java版本不匹配的问题:gradle6.5 java15
2.2nebula.ospackage-base插件一致下载不下来。找出最新版本代替。
2.3 groovy sdk is not configured for elasticsearch7.6
是因为gradle版本与java的版本对应问题。最后将java换成13 gradle换成6.1.1就解决了。
groovy在gradle库中本身就存在的。
三.调试报错
3.1 Unsupported class file major version 62
为上图的java compile, 添加项目并配置为java15
3.2 配置文件
ERROR: the system property [es.path.conf] must be set
ERROR: the system property [es.path.home] must be set
vm配置
-Des.path.conf=E:\project\opensource\elasticsearch-v7.8.0\home\config
-Des.path.home=E:\project\opensource\elasticsearch-v7.8.0\home
-Dlog4j2.disable.jmx=true
-Djava.security.policy=E:\project\opensource\elasticsearch-v7.8.0\home\config\java.policy
3.3 java.lang.NoClassDefFoundError: org/elasticsearch/plugins/ExtendedPluginsClassLoader
jar包依赖:scope为provided表示不会被打包,但是本地编译的时候,需要能够访问。
需要将发行版的modules和plugin拷贝入vm设置的配置文件中
4. 以上完成gradle即可reload成功。之后即可运行main函数成功了
5. 但是以下情况可以忽略,不影响main函数运行
5.1 task build 始终失败
为run build
此处会一直卡住下载(需要翻墙)https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.1+7/OpenJDK14U-jdk_aarch64_linux_hotspot_14.0.1_7.tar.gz
5.2 reload gradle 没问题
reload 为build
疑问:task (build)与 reload gradle project(build) 两者有啥区别。两者皆有test。后续再研究下。
四、kibana可视化管理elasticsearch
使用此用户名密码取登录localhost:9200和localhost:5601