quarkus: Quarkus multimodule build failures after upgrading to 2.0.2.Final

Describe the bug

On a multimodule quarkus application I get the following behavior after upgrading to 2.0.2

[INFO] Reactor Summary for root 0.0.1-SNAPSHOT:
[INFO]
[INFO] root ............................................... SUCCESS [  0.373 s]
[INFO] parent ............................................. SUCCESS [  0.767 s]
[INFO] q-entities ......................................... SUCCESS [  2.721 s]
[INFO] submodule-1 ........................................ SUCCESS [  0.222 s]
[INFO] q-app .............................................. FAILURE [  9.532 s]
[INFO] q-tests ............................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:2.0.1.Final:build (default) on project release-raccoon-app: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR]     [error]: Build step io.quarkus.hibernate.orm.rest.data.panache.deployment.HibernateOrmPanacheRestProcessor#findEntityResources threw an exception: java.lang.IllegalArgumentException: Couldn't find id field of null

This happens when the quarkus submodule is being built.

I had a look at the migration guide to 2.0.0 but couldn’t find something relevant to my setup. The error message is a bit cryptic as well and couldn’t find where to look for it in the quarkus codebase. Did something change within the new version that needs attention?

The entire codebase including the upgrade code can be found here https://github.com/jaivalis/release-raccoon/tree/upgrade-quarkus.

Expected behavior

Build should succeed since it does with the older version of quarkus 1.10.5.Final.

Actual behavior

Build fails with a cryptic message:

❯ mvn package
executing mvnw instead of mvn
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] root                                                               [pom]
[INFO] parent                                                             [pom]
[INFO] raccoon-entities                                                   [jar]
[INFO] scraping                                                           [jar]
[INFO] release-raccoon-app                                                [jar]
[INFO] raccoon-tests                                                      [jar]
[INFO]
[INFO] --------------------< com.raccoon:release-raccoon >---------------------
[INFO] Building root 0.0.1-SNAPSHOT                                       [1/6]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] -------------------------< com.raccoon:parent >-------------------------
[INFO] Building parent 0.0.1-SNAPSHOT                                     [2/6]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --------------------< com.raccoon:raccoon-entities >--------------------
[INFO] Building raccoon-entities 0.0.1-SNAPSHOT                           [3/6]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ raccoon-entities ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ raccoon-entities ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- jandex-maven-plugin:1.1.0:jandex (make-index) @ raccoon-entities ---
[INFO] Saving Jandex index: /release-raccoon/raccoon-entities/target/classes/META-INF/jandex.idx
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ raccoon-entities ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /release-raccoon/raccoon-entities/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ raccoon-entities ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ raccoon-entities ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ raccoon-entities ---
[INFO] Building jar: /raccoon-entities/target/raccoon-entities-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] ------------------------< com.raccoon:scraping >------------------------
[INFO] Building scraping 0.0.1-SNAPSHOT                                   [4/6]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ scraping ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /release-raccoon/scraping/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ scraping ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ scraping ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /release-raccoon/scraping/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ scraping ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ scraping ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ scraping ---
[INFO] Building jar: /release-raccoon/scraping/target/scraping-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] ------------------< com.raccoon:release-raccoon-app >-------------------
[INFO] Building release-raccoon-app 0.0.1-SNAPSHOT                        [5/6]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ release-raccoon-app ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ release-raccoon-app ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ release-raccoon-app ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 5 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ release-raccoon-app ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ release-raccoon-app ---
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ release-raccoon-app ---
[INFO] Building jar: /release-raccoon/release-raccoon-app/target/release-raccoon-app-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- quarkus-maven-plugin:2.0.2.Final:build (default) @ release-raccoon-app ---
[INFO] [org.jboss.threads] JBoss Threads version 3.4.0.Final
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for root 0.0.1-SNAPSHOT:
[INFO]
[INFO] root ............................................... SUCCESS [  0.004 s]
[INFO] parent ............................................. SUCCESS [  0.002 s]
[INFO] raccoon-entities ................................... SUCCESS [  2.172 s]
[INFO] scraping ........................................... SUCCESS [  0.130 s]
[INFO] release-raccoon-app ................................ FAILURE [  7.866 s]
[INFO] raccoon-tests ...................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  10.442 s
[INFO] Finished at: 2021-07-15T09:47:51+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:2.0.2.Final:build (default) on project release-raccoon-app: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR] 	[error]: Build step io.quarkus.hibernate.orm.rest.data.panache.deployment.HibernateOrmPanacheRestProcessor#findEntityResources threw an exception: java.lang.IllegalArgumentException: Couldn't find id field of null
[ERROR] 	at io.quarkus.hibernate.orm.rest.data.panache.deployment.EntityClassHelper.getIdField(EntityClassHelper.java:42)
[ERROR] 	at io.quarkus.hibernate.orm.rest.data.panache.deployment.EntityClassHelper.getIdField(EntityClassHelper.java:25)
[ERROR] 	at io.quarkus.hibernate.orm.rest.data.panache.deployment.ResourceImplementor.setId(ResourceImplementor.java:120)
[ERROR] 	at io.quarkus.hibernate.orm.rest.data.panache.deployment.ResourceImplementor.implementUpdate(ResourceImplementor.java:106)
[ERROR] 	at io.quarkus.hibernate.orm.rest.data.panache.deployment.ResourceImplementor.implement(ResourceImplementor.java:56)
[ERROR] 	at io.quarkus.hibernate.orm.rest.data.panache.deployment.HibernateOrmPanacheRestProcessor.findEntityResources(HibernateOrmPanacheRestProcessor.java:72)
[ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR] 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[ERROR] 	at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:820)
[ERROR] 	at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
[ERROR] 	at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2442)
[ERROR] 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1476)
[ERROR] 	at java.base/java.lang.Thread.run(Thread.java:834)
[ERROR] 	at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :release-raccoon-app

(running with -X was not too revealing to me either)

How to Reproduce?

Run mvn clean package on the branch mentioned above.

Output of uname -a or ver

No response

Output of java -version

openjdk version “11.0.2” 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

GraalVM version (if different from Java)

No response

Quarkus version or git rev

2.0.2.Final

Build tool (ie. output of mvnw --version or gradlew --version)

3.8.1

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 17 (14 by maintainers)

Most upvoted comments

So, it’s not simply an upgrade to a new Quarkus version, it’s an upgrade plus major project layout refactoring. It’s better to separate that in two phases @jaivalis

Also lombok appears in compile scope, which should be provided.

Thanks a lot @aloubyansky!