質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

Q&A

解決済

2回答

7075閲覧

File: 'module-info.class': Invalid byte tag in constant pool: 19 の回避方法

InoReo

総合スコア4

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Apache Maven

Apache Mavenは、ソフトウェアプロジェクトの管理ツールです。

0グッド

0クリップ

投稿2020/01/20 23:24

前提・実現したいこと

Mavenでソースファイルのビルドを行おうとしたところ、Unit Test時のエラーが発生し解決方法が分かりません。
エラーを回避し、インストールを正常終了させたいと考えております

発生している問題・エラーメッセージ

org.aspectj.apache.bcel.classfile.ClassFormatException: File: 'module-info.class': Invalid byte tag in constant pool: 19

プロキシ環境下で開発していることが影響していると仮定し、mavenのプロキシに関する設定を行いましたが解決をすることができず、困っております。お手数ですが解決策をご教授いただきたく。

該当のソースコード

---- AspectJ Properties --- AspectJ Compiler 1.8.6 built on Friday Jun 5, 2015 at 23:41:42 GMT ---- Dump Properties --- Dump file: ajcore.20200114.095601.338.txt Dump reason: org.aspectj.apache.bcel.classfile.ClassFormatException Dump on exception: true Dump at exit condition: abort ---- Exception Information --- org.aspectj.apache.bcel.classfile.ClassFormatException: File: 'module-info.class': Invalid byte tag in constant pool: 19 at org.aspectj.apache.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:192) at org.aspectj.apache.bcel.classfile.ClassParser.parse(ClassParser.java:131) at org.aspectj.weaver.bcel.BcelWeaver.addAspectsFromJarFile(BcelWeaver.java:260) at org.aspectj.weaver.bcel.BcelWeaver.addLibraryJarFile(BcelWeaver.java:236) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:874) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:249) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:185) at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112) at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60) at org.aspectj.tools.ajc.Main.run(Main.java:371) at com.jcabi.maven.plugin.AjcMojo.executeAJC(AjcMojo.java:239) at com.jcabi.maven.plugin.AjcMojo.execute_aroundBody2(AjcMojo.java:218) at com.jcabi.maven.plugin.AjcMojo$AjcClosure3.run(AjcMojo.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:208) at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1) at com.jcabi.aspects.aj.MethodLogger.wrapMethod(MethodLogger.java:164) at com.jcabi.maven.plugin.AjcMojo.execute_aroundBody4(AjcMojo.java:203) at com.jcabi.maven.plugin.AjcMojo$AjcClosure5.run(AjcMojo.java:1) at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149) at com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:134) at com.jcabi.maven.plugin.AjcMojo.execute(AjcMojo.java:203) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 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)

Parent pom.xml

https://github.com/onap/sdc/blob/master/pom.xml

child pom.xml

https://github.com/onap/sdc/blob/master/catalog-be/pom.xml

試したこと

.m2フォルダ配下のsettings.xmlファイルのプロキシの設定を行いました。
また、pomのバージョンに問題が起因していると仮定し、バージョンを変更して行ってみまいたが解決には至りませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dameo

2020/01/21 10:17

apache bcelはclassファイルの中身を解析するライブラリです。クラスやフィールド、メソッド、バイトコードなどを解析できます。 そこでエラーが起きているということは、プロキシごときが原因ではないと思います。モノがなくて再現できないのでこれ以上は何も言えませんが…
InoReo

2020/01/23 00:08

maven pluginsの指定しているバージョンを直接、書き換えることで Compilerのバージョンを変更できることを確認したしました。 そして、質問していたエラーの内容について、回避を行うことができました。
guest

回答2

0

BCELがJava 9以降のクラスファイルを理解できない

File: 'module-info.class': Invalid byte tag in constant pool: 19

java 9 でコンパイルされたクラスのコンスタントプールにCONSTANT_Module(19)が追加された。4.4 Constant Pool
BCELのバージョンがこのタグを理解しないのでエラーが発生。getting Invalid byte tag in constant pool : 19

解決策

BCELのバージョンを上げ るのが良さそうですが、動作、実績とも未確認です。

  • BCEL 6.2以降で対応済
  • AspectJ 1.9.0以降のバージョンを使う
  • Tomcat 8.5.x/9.x にアップグレードする
  • Plexus Compiler ?
    aspectjrt 1.8.9 に依存。アップグレードしても解消しないかもしれない
    (aspectjrt 1.8.9 にbcel 6.2 以降がバックポートされているか要確認)

Javaのバージョンを8に下げてビルドするのが第二案です。

何かわかれば、さらに追記するかもしれません。

投稿2020/01/21 11:31

編集2020/01/22 22:57
xebme

総合スコア1083

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

InoReo

2020/01/22 01:24

ご回答いただきまして、誠にありがとうございます。 AspectJ 1.9.0に上げると良いとのことで、試してみたいと考えております 変更方法について、以下のようにすれば良いと考えておりますが、合っておりますでしょうか ・Parent pom.xmlの以下のaspectjに関するverisionをアップデートする <aspectjrt.version>1.8.4</aspectjrt.version> <aspectj.version>1.7.4</aspectj.version>
退会済みユーザー

退会済みユーザー

2020/01/22 03:54

質問主 試せることは試してから聞こう
InoReo

2020/01/22 04:52 編集

上記、言葉不足があり申し訳ありません。 上記については、一度のpomのバージョンの変更し、試しましたが、エラーを回避することができませんでした。エラーのdumpファイルには、AspectJ Compiler 1.8.6 と記載があり、AspectJ のバージョン指定の方法が異なるのではないか、という背景から上記の確認をさせていただきております。
xebme

2020/01/22 10:23 編集

スタックトレースの一番下にあるplexus-classworldsがAspectJを使用していることまでわかっています。plexus-classworldsの最新が2.6.0 、plexus-compilerが2.8.3、AspectJのバージョンはplexus-aspectj-compilerがaspectjrt 1.8.9に依存。
xebme

2020/01/23 01:48

自己解決してください。asahina1979さんありがとうございます。
guest

0

自己解決

asahina1979 様がご指摘していただいたmaven pluginsの以下の行のツールのバージョン指定を直接に書き換えることで、上記のエラーの内容を回避することができることを確認いたしました。
https://github.com/jcabi/jcabi-maven-plugin/blob/master/pom.xml#L99

投稿2020/01/28 01:19

InoReo

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問