GitHub Actions runner缺失JAVA_HOME,Leiningen无法找到Java可执行文件
解决GitHub Actions中Leiningen找不到Java的问题
问题原因
虽然actions/setup-java@v4成功安装了JDK,但后续的oxr463/setup-leiningen步骤无法识别Java可执行文件。这是因为部分第三方Action不会自动继承前序步骤设置的环境变量,导致Leiningen找不到PATH里的Java路径。
解决方案1:手动安装Leiningen(推荐)
放弃第三方Leiningen Action,直接在同一个环境下手动安装并执行命令,确保复用已配置好的Java环境:
- name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Install Leiningen and build uberjar run: | # 下载Leiningen脚本并授权 curl -O https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein chmod +x lein sudo mv lein /usr/local/bin/ # 执行构建流程 lein uberjar && cp "$(find . -name '*.jar')" .
解决方案2:修复环境变量传递
如果一定要用第三方Leiningen Action,需要显式把Java路径加入全局PATH,让后续步骤能识别到:
- name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Add Java to global PATH run: echo "$JAVA_HOME/bin" >> $GITHUB_PATH - name: Use oxr463/setup-leiningen uses: oxr463/setup-leiningen@0.0.1 with: exec: | lein uberjar && \ cp "$(find . -name '*.jar')" .
说明
$GITHUB_PATH是GitHub Actions的特殊环境变量文件,修改它会让所有后续步骤的PATH都包含Java的bin目录,确保Leiningen能找到Java可执行文件。
内容的提问来源于stack exchange,提问作者SeemaC
相关产品推荐
相关产品推荐

