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

发布Mule JSON Logger到Anypoint Exchange时Java构建失败求助

问题:Mule JSON Logger发布到Anypoint Exchange时Java构建失败

我正尝试基于json-logger仓库将Mule JSON Logger发布到Anypoint Exchange,提供ORG ID并执行deploy-to-exchange.sh脚本后,持续遇到Java构建失败,堆栈跟踪如下:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[WARNING] diagnostic: warning: Supported source version 'RELEASE_8' from annotation processor 'org.mule.runtime.ast.internal.extension.loader.ASTExtensionResourcesGeneratorAnnotationProcessor' less than -source '20'
[INFO] diagnostic: Note: Starting Resources generator for Extensions
[ERROR] error on execute: use -X to have details 
[DEBUG] 
java.lang.RuntimeException: java.lang.ExceptionInInitializerError
    at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper (JavacTaskImpl.java:168)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
    at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
    at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.executeWithExceptionsHandled (AbstractAnnotationProcessorMojo.java:778)
    at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.execute (AbstractAnnotationProcessorMojo.java:429)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:342)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:330)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:175)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:76)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:163)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:160)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:827)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:272)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:195)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke ..........

我机器上安装了JDK 20,之前用JDK 8时也遇到相同错误,请问是什么原因?


分析与解决方案

可能原因

  • JDK版本不兼容:日志明确显示Mule的注解处理器仅支持JDK 8,但构建时实际使用的是JDK 20;切换JDK 8后仍报错,大概率是Maven环境未正确切换JDK版本,或者项目pom.xml中的JDK配置存在冲突。
  • SLF4J绑定缺失:SLF4J警告无法加载StaticLoggerBinder,虽为警告,但可能导致注解处理器初始化异常,引发构建失败。
  • Maven注解处理器插件不兼容:注解处理器执行时抛出ExceptionInInitializerError,可能是插件版本与Mule运行时的注解处理器不匹配。

解决步骤

  • 强制指定JDK 8构建

    1. 确保JAVA_HOME环境变量指向JDK 8目录,且PATH优先使用该JDK的bin目录
    2. 在项目pom.xml中明确配置JDK版本:
      <properties>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
          <maven.compiler.release>8</maven.compiler.release>
      </properties>
      
  • 补充SLF4J绑定依赖
    在pom.xml中添加SLF4J的简单实现依赖:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.36</version>
        <scope>provided</scope>
    </dependency>
    
  • 更新Maven注解处理器插件
    检查项目中maven-processor-plugin的版本,升级到兼容版本(如4.5):

    <plugin>
        <groupId>org.bsc.maven</groupId>
        <artifactId>maven-processor-plugin</artifactId>
        <version>4.5</version>
        <!-- 保留原有插件配置 -->
    </plugin>
    
  • 清理Maven缓存
    执行命令强制更新依赖并清理缓存:

    mvn clean install -U
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:25:00