You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac环境下构建Java17兼容MuleSoft JSON Logger时JDeps命令错误排查

MuleSoft JSON Logger组件发布到Anypoint Exchange的JAVA_HOME配置问题

错误信息

Failed to execute goal org.apache.maven.plugins:maven-jdeps-plugin:3.1.2:jdkinternals (default) on project json-logger: Unable to find jdeps command: The environment variable JAVA_HOME is not correctly set

环境信息

  • Mac系统
  • 终端执行命令结果:
    /usr/libexec/java_home
    /Library/Java/JavaVirtualMachines/amazon-corretto-11.jdk/Contents/Home
    
    which java
    /usr/bin/java
    
  • 项目基于MuleSoft支持团队提供的JSON Logger,仅修改了pom.xml并删除AMQP、Broker Destinations相关内容,目标支持Java 17和Mule 4.6+

解决方案

1. 临时切换到Java 17并验证配置

你当前默认Java版本是11,但需要用Java 17构建组件。先找到Java 17的安装路径:

/usr/libexec/java_home -v 17

输出类似/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home的路径后,临时设置当前终端的JAVA_HOME:

export JAVA_HOME=$(/usr/libexec/java_home -v 17)

验证配置是否生效:

echo $JAVA_HOME
java -version
jdeps -version

确认Java版本为17且jdeps命令能正常运行。

2. 永久配置Java 17环境(可选)

如果需要每次终端启动都自动使用Java 17,编辑你的shell配置文件:

  • 若用zsh:编辑~/.zshrc
  • 若用bash:编辑~/.bash_profile或~/.bashrc
    添加以下内容:
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH

保存后执行source ~/.zshrc(对应你的配置文件)使修改生效。

3. 调整pom.xml的Java版本和插件配置

你的pom.xml未指定Java版本,需在<properties>块中添加:

<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.release>${java.version}</maven.compiler.release>

同时,maven-jdeps-plugin 3.1.2对Java 17支持有限,建议升级到稳定版:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jdeps-plugin</artifactId>
    <version>3.4.0</version>
    <executions>
        <execution>
            <goals>
                <goal>jdkinternals</goal>
                <goal>test-jdkinternals</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <failOnWarning>true</failOnWarning>
    </configuration>
</plugin>

4. 验证Maven使用的Java环境

执行以下命令确认Maven使用的Java路径:

mvn -version

查看输出中的Java home是否指向Java 17的安装路径。

内容的提问来源于stack exchange,提问作者Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:32:02