使用GitHub Actions构建JavaFX Maven项目遇JDK17编译错误求助
问题:Maven编译报错“release version 17 not supported”
我尝试用Maven创建简单JavaFX项目,通过GitHub Actions构建Linux包,使用的Workflow文件如下:
# This workflow will build a Java project with Maven # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven name: Linux Client on: workflow_dispatch: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up JDK 17 uses: actions/setup-java@v2 with: java-version: '17' distribution: 'temurin' - name: Debug run: mvn -version - name: Build with Maven run: sudo mvn -e -B install --file pom.xml - name: Upload DEB package uses: actions/upload-artifact@v2 with: name: Installer files path: target/installer/*
该Workflow已配置JDK17,mvn -version输出显示版本正确:
Run mvn -version Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /usr/share/apache-maven-3.8.6 Java version: 17.0.4.1, vendor: Eclipse Adoptium, runtime: /usr/lib/jvm/temurin-17-jdk-amd64 Default locale: en, platform encoding: UTF-8 OS name: "linux", version: "5.15.0-1017-azure", arch: "amd64", family: "unix"
但构建失败,报错信息为:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project TestMaven: Fatal error compiling: error: release version 17 not supported -> [Help 1]
问题原因与解决办法
原因
执行Maven命令时添加的sudo会切换到root用户环境,而root用户的环境变量(包括JAVA_HOME)并未指向你配置的JDK17,导致Maven实际使用了系统默认的低版本JDK,因此不支持编译release版本17。
解决办法
优先方案:去掉
mvn命令前的sudo,直接执行:mvn -e -B install --file pom.xmlGitHub Actions运行环境本身具备足够权限完成Maven构建,通常无需sudo。
若必须使用sudo:在sudo命令中添加
-E参数,保留当前用户的环境变量(含JDK17配置):sudo -E mvn -e -B install --file pom.xml
内容的提问来源于stack exchange,提问作者gdnmhr
相关产品推荐
相关产品推荐

