【问题标题】:org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19org.apache.bcel.classfile.ClassFormatException:常量池中的无效字节标记:19
【发布时间】:2018-03-20 11:35:28
【问题描述】:

当我使用mvn site 时,会生成报告,但我在终端中出现此异常:

[WARNING] Unable to process class module-info.class in JarAnalyzer File C:\WINDOWS\system32\config\systemprofile\.m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar
org.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
    at org.apache.bcel.classfile.Constant.readConstant (Constant.java:161)
    at org.apache.bcel.classfile.ConstantPool.<init> (ConstantPool.java:69)
    at org.apache.bcel.classfile.ClassParser.readConstantPool (ClassParser.java:235)
    at org.apache.bcel.classfile.ClassParser.parse (ClassParser.java:143)
    at org.apache.maven.shared.jar.classes.JarClassesAnalysis.analyze (JarClassesAnalysis.java:96)
    at org.apache.maven.report.projectinfo.dependencies.Dependencies.getJarDependencyDetails (Dependencies.java:259)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.hasSealed (DependenciesRenderer.java:1542)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderSectionDependencyFileDetails (DependenciesRenderer.java:545)
    at org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderBody (DependenciesRenderer.java:240)
    at org.apache.maven.reporting.AbstractMavenReportRenderer.render (AbstractMavenReportRenderer.java:83)
    at org.apache.maven.report.projectinfo.DependenciesReport.executeReport (DependenciesReport.java:201)
    at org.apache.maven.reporting.AbstractMavenReport.generate (AbstractMavenReport.java:255)
    at org.apache.maven.plugins.site.ReportDocumentRenderer.renderDocument (ReportDocumentRenderer.java:219)
    at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.renderModule (DefaultSiteRenderer.java:319)
    at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render (DefaultSiteRenderer.java:135)
    at org.apache.maven.plugins.site.SiteMojo.renderLocale (SiteMojo.java:175)
    at org.apache.maven.plugins.site.SiteMojo.execute (SiteMojo.java:138)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)

我使用日食。这是一个没有选定原型的简单 maven 项目。

可能是什么问题?

更多关于 maven 和 JDK 的信息:

Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02- 
24T22:49:05+03:00)
Maven home: C:\Program Files\Apache Software Foundation\apache-maven-3.5.3\bin\..
Java version: 1.8.0_161, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jre1.8.0_161
Default locale: en_US, platform encoding: Cp1251
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

【问题讨论】:

  • 你是从eclipse右键菜单还是命令行执行mvn site
  • @SilverShroud 我从命令行执行mvn site
  • mvn org.apache.maven.plugins:maven-site-plugin:3.6:site 可以试试这个命令看看是否和网站插件版本有关。在此之后尝试将您的代码编译和目标级别设置为 jdk 1.8
  • @SilverShroud 当我使用mvn org.apache.maven.plugins:maven-site-plugin:3.6:site 时出现同样的异常,JDK 已在所有地方设置为 1.8

标签: java eclipse maven


【解决方案1】:

我怀疑这是由工具链中的工具之一(错误地)尝试从 log4j-api jar 中的 META-INF/versions/java9 目录加载类引起的。

您能否使用“多版本 jar-aware”且不尝试这样做的 BCEL 版本?

【讨论】:

  • 你能提供更多关于你的答案的细节吗?我如何使用这个(BCEL)?谢谢
  • org.apache.bcel 正在抛出错误。我认为这是 Maven 站点插件使用的字节码操作库。您可以尝试强制使用更高版本的 Maven 站点或 bcel 库。根本原因是 Log4j2 是一个多版本 jar,其中包含在该目录中为 Java 9 编译的一些类。工具不应该从那里加载类。
  • wiki.bitplan.com/index.php/Java8#mvn_site_fails 只是另一个 java9+ 不兼容
  • TL;DR 更新 maven-site-plugin
【解决方案2】:

一直以来,我只找到了将 log4j2 版本从 2.10.0 减少到 2.9.1 的解决方案。

【讨论】:

  • Log4j 2.11 上同样的问题?
  • @RemkoPopma 是的,与 log4j 2.11.0 相同的问题。在2.9.1 上运行良好
【解决方案3】:

要解决,请尝试将以下内容添加到您的 pom 中

<plugin>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.9</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.shared</groupId>
                        <artifactId>maven-shared-jar</artifactId>
                        <version>1.2</version>
                        <exclusions>
                            <exclusion>
                                <groupId>com.google.code.findbugs</groupId>
                                <artifactId>bcel-findbugs</artifactId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.bcel</groupId>
                        <artifactId>bcel</artifactId>
                        <version>6.2</version>
                    </dependency>
                </dependencies>
            </plugin>

Solved the issue for my build

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 2018-11-07
    • 2014-06-25
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多