20220615国内编译projector&idea-sdk-demo

自行编译client

gradle\wrapper\gradle-wrapper.properties这里可以修改gradlew的依赖地址distributionUrl,改成速度快的url就行,注意冒号要转义

projector-client的electron和web的依赖还好,一次成功了

修改projector-client-web\src\main\kotlin\org\jetbrains\projector\client\web\window\WebWindowManager.kt

注释掉stateMachine.fire DeactivationEvent后可以让projector一直处于前台,避免命令行调用idea失败

修改/root/.config/JetBrains/IdeaIC2021.2/idea64.vmoptions,增加

-Djava.awt.headless=true

可以在projector中正常使用命令行/projector/ide/bin/idea.sh

/usr/local/bin/idea软链到/projector/ide/bin/idea.sh可简化为idea

编写可执行文件i放到path下,内容为idea ${PWD},在项目根目录执行i可直接控制projector切换项目

/root/.config/JetBrains/IdeaIC2021.2/idea64.vmoptions增加idea启动参数开启开发者插件,开启tools里的psiviewer方便查看语法/语义树

windows自带的端口转发,转发后使用localhost访问可避免剪切板无法使用的问题
netsh interface portproxy show all
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8887 connectaddress=REMOTE_IP connectport=8887
netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=8887

重新编译server

根目录新增local.properties,修改useLocalProjectorClient=true可使用本地的client依赖打包

projector-server的依赖不知道为啥有几率失败,待定位根本原因,基本是访问jetbrains服务器失败,在插件内部。debug显示jetbrans的依赖服务器不支持tlsv1.2和1.3,但curl手动测试是正常的,在根目录的gradle.properties里逐个尝试这几个版本直到所有依赖都下载成功后暂时绕过了问题

systemProp.https.protocols=TLSv1.0

systemProp.https.protocols=TLSv1.1

systemProp.https.protocols=TLSv1.2

systemProp.https.protocols=TLSv1.3

附腾讯云gradlew mirror

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.4.2-all.zip
阿里云mirror

附kts写法

处理中文显示问题
RUN echo “export LC_ALL=C.UTF-8”>> ~/.bashrc
RUN echo “export LANG=C.UTF-8”>> ~/.bashrc
开启tmux鼠标滚轮
RUN echo “set -g mouse on”>> ~/.tmux.conf
0 Comments
Leave a Reply