Quarkus: Cannot find 'jvmArgs' in class io.quarkus.maven.GenerateCodeMojo

Created on 3 Dec 2020  路  23Comments  路  Source: quarkusio/quarkus

Hi,

After upgrading to 1.10.2 (including maven plugin) from 1.9.2, I'm geting the following error when I run mvn quarkus:dev alone:

[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.10.2.Final:dev (default-cli) on project btrdkr: Unable to execute mojo: Unable to parse configuration of mojo io.quarkus:quarkus-maven-plugin:1.10.2.Final:generate-code for parameter jvmArgs: Cannot find 'jvmArgs' in class io.quarkus.maven.GenerateCodeMojo -> [Help 1]

...this is after I first run mvn compile. If I run them together with mvn compile quarkus:dev, I get the exception when starting up:

2020-12-03 16:11:56,003 ERROR [io.qua.run.Application] (Quarkus Main Thread) Failed to start application (with profile dev): java.security.cert.CertificateException: No X509TrustManager implementation available
        at java.base/sun.security.ssl.DummyX509TrustManager.checkServerTrusted(SSLContextImpl.java:1652)
        at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:632)
        at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473)
        at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369)
        at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
        at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)
        at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1267)
        at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask$DelegatedAction.run(SSLEngineImpl.java:1254)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)
        at java.base/sun.security.ssl.SSLEngineImpl$DelegatedTask.run(SSLEngineImpl.java:1199)
        at io.netty.handler.ssl.SslHandler.runAllDelegatedTasks(SslHandler.java:1542)
...

This is because I use OIDC module and it tries to contact the OIDC server during startup using SSL. I have the following configuration for maven plugin:

            <plugin>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-maven-plugin</artifactId>
                <version>${quarkus.platform.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>build</goal>
                            <goal>generate-code</goal>
                            <goal>generate-code-tests</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jvmArgs>-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=${project.build.outputDirectory}/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit</jvmArgs>
                </configuration>
            </plugin>

It looks like the quarkus:dev mojo is not passing the jvmArgs to the JVM when starting it up. This used to work with 1.9.2 plugin.

To Reproduce

Use <jvmArgs>...</jvmArgs> in configuration of quarkus-maven-plugin and see that they are either not applied or executing mvn quarkus:dev alone bails out with error.

aremaven kinbug

All 23 comments

/cc @quarkusio/devtools

@plevart can you please run mvn -e quarkus:dev and post the stacktrace? Thanks!

Here's the whole output:

[INFO] ---------------------------< si.pele:btrdkr >---------------------------
[INFO] Building btrdkr 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- quarkus-maven-plugin:1.10.2.Final:dev (default-cli) @ btrdkr ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.935 s
[INFO] Finished at: 2020-12-03T22:20:24+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.10.2.Final:dev (default-cli) on project btrdkr: Unable to execute mojo: Unable to parse configuration of mojo io.quarkus:quarkus-maven-plugin:1.10.2.Final:generate-code for parameter jvmArgs: Cannot find 'jvmArgs' in class io.quarkus.maven.GenerateCodeMojo -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.quarkus:quarkus-maven-plugin:1.10.2.Final:dev (default-cli) on project btrdkr: Unable to execute mojo
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    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:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to execute mojo
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:122)
    at io.quarkus.maven.DevMojo.executeIfConfigured (DevMojo.java:415)
    at io.quarkus.maven.DevMojo.triggerPrepare (DevMojo.java:386)
    at io.quarkus.maven.DevMojo.handleAutoCompile (DevMojo.java:375)
    at io.quarkus.maven.DevMojo.execute (DevMojo.java:286)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    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:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo io.quarkus:quarkus-maven-plugin:1.10.2.Final:generate-code for parameter jvmArgs: Cannot find 'jvmArgs' in class io.quarkus.maven.GenerateCodeMojo
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields (DefaultMavenPluginManager.java:665)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:597)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120)
    at io.quarkus.maven.DevMojo.executeIfConfigured (DevMojo.java:415)
    at io.quarkus.maven.DevMojo.triggerPrepare (DevMojo.java:386)
    at io.quarkus.maven.DevMojo.handleAutoCompile (DevMojo.java:375)
    at io.quarkus.maven.DevMojo.execute (DevMojo.java:286)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    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:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find 'jvmArgs' in class io.quarkus.maven.GenerateCodeMojo
    at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty (CompositeBeanHelper.java:252)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration (ObjectWithFieldsConverter.java:101)
    at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent (BasicComponentConfigurator.java:34)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields (DefaultMavenPluginManager.java:635)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:597)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120)
    at io.quarkus.maven.DevMojo.executeIfConfigured (DevMojo.java:415)
    at io.quarkus.maven.DevMojo.triggerPrepare (DevMojo.java:386)
    at io.quarkus.maven.DevMojo.handleAutoCompile (DevMojo.java:375)
    at io.quarkus.maven.DevMojo.execute (DevMojo.java:286)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    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:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR] 
[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

Can you try removing:

                            <goal>generate-code</goal>
                            <goal>generate-code-tests</goal>

?

So, with just build goal:

                        <goals>
                            <goal>build</goal>
<!--                            <goal>generate-code</goal>-->
<!--                            <goal>generate-code-tests</goal>-->
                        </goals>

I get the same stack trace:

Caused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find 'jvmArgs' in class io.quarkus.maven.GenerateCodeMojo
    at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty (CompositeBeanHelper.java:252)
    at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration (ObjectWithFieldsConverter.java:101)
    at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent (BasicComponentConfigurator.java:34)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields (DefaultMavenPluginManager.java:635)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:597)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)
    at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120)
    at io.quarkus.maven.DevMojo.executeIfConfigured (DevMojo.java:415)
    at io.quarkus.maven.DevMojo.triggerPrepare (DevMojo.java:386)
    at io.quarkus.maven.DevMojo.handleAutoCompile (DevMojo.java:375)
    at io.quarkus.maven.DevMojo.execute (DevMojo.java:286)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    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:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

Yeah, the problem that this workaround doesn't work is that DevMojo is triggering the generate-code goal when it finds quarkus plugin, but it doesn't check whether the goal is actually defined. See also DevMojo.executeIfConfigured(...).
I think that should be changed. But that's another problem.
/cc @aloubyansky

Do you have any idea why jvmArgs are ineffective when I execute mvn compile quarkus:dev. In that case the program starts, but without jvmArgs applied.

Not yet, but it would be helpful if you could post debug output: mvn -X compile quarkus:dev
鈿狅笍 This will print _a lot_ so best redirect it to a file. I'm interested in the config summary that is printed at the beginning of the dev goal execution.

You probably want the following section:

[DEBUG] Configuring mojo 'io.quarkus:quarkus-maven-plugin:1.10.2.Final:dev' with basic configurator -->
[DEBUG]   (f) buildDir = /home/peter/work/git/btrdkr/target
[DEBUG]   (f) debugHost = localhost
[DEBUG]   (f) deleteDevJar = true
[DEBUG]   (f) jvmArgs = -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/home/peter/work/git/btrdkr/target/classes/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit
[DEBUG]   (f) outputDirectory = /home/peter/work/git/btrdkr/target/classes
[DEBUG]   (f) project = MavenProject: si.pele:btrdkr:1.0.0-SNAPSHOT @ /home/peter/work/git/btrdkr/pom.xml
[DEBUG]   (f) repoSession = org.eclipse.aether.DefaultRepositorySystemSession@3d763ae5
[DEBUG]   (f) repos = [central (https://repo.maven.apache.org/maven2, default, releases)]
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@61c42416
[DEBUG]   (f) sourceDir = /home/peter/work/git/btrdkr/src/main/java
[DEBUG]   (f) workingDir = /home/peter/work/git/btrdkr/target
[DEBUG] -- end configuration --
[DEBUG] Detected Maven Version: 3.6.3
[DEBUG] Detected Maven Version (3.6.3)  is allowed in [3.6.2,).
[ERROR] Using javaTool: /usr/lib/jvm/java-11-openjdk-11.0.9.11-4.fc32.x86_64/bin/java
[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=103170, ConflictMarker.markTime=85200, ConflictMarker.nodeCount=228, ConflictIdSorter.graphTime=53980, ConflictIdSorter.topsortTime=42370, ConflictIdSorter.conflictIdCount=85, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=934680, ConflictResolver.conflictItemCount=181, DefaultDependencyCollector.collectTime=8876654, DefaultDependencyCollector.transformTime=1257460}
[ERROR] Executable jar: /home/peter/work/git/btrdkr/target/btrdkr-dev.jar
[DEBUG] Launching JVM with command line: /usr/lib/jvm/java-11-openjdk-11.0.9.11-4.fc32.x86_64/bin/java -Xverify:none -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/home/peter/work/git/btrdkr/target/classes/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -XX:TieredStopAtLevel=1 -Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager -jar /home/peter/work/git/btrdkr/target/btrdkr-dev.jar

This was executed with the following goals configured:

                        <goals>
                            <goal>build</goal>
<!--                            <goal>generate-code</goal>-->
<!--                            <goal>generate-code-tests</goal>-->
                        </goals>

If I uncomment the commented goals, I get:

[DEBUG] Configuring mojo io.quarkus:quarkus-maven-plugin:1.10.2.Final:dev from plugin realm ClassRealm[plugin>io.quarkus:quarkus-maven-plugin:1.10.2.Final, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@55054057]
[DEBUG] Configuring mojo 'io.quarkus:quarkus-maven-plugin:1.10.2.Final:dev' with basic configurator -->
[DEBUG]   (f) buildDir = /home/peter/work/git/btrdkr/target
[DEBUG]   (f) debugHost = localhost
[DEBUG]   (f) deleteDevJar = true
[DEBUG]   (f) jvmArgs = -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/home/peter/work/git/btrdkr/target/classes/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit
[DEBUG]   (f) outputDirectory = /home/peter/work/git/btrdkr/target/classes
[DEBUG]   (f) project = MavenProject: si.pele:btrdkr:1.0.0-SNAPSHOT @ /home/peter/work/git/btrdkr/pom.xml
[DEBUG]   (f) repoSession = org.eclipse.aether.DefaultRepositorySystemSession@346f41a9
[DEBUG]   (f) repos = [central (https://repo.maven.apache.org/maven2, default, releases)]
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@3b5b8a4d
[DEBUG]   (f) sourceDir = /home/peter/work/git/btrdkr/src/main/java
[DEBUG]   (f) workingDir = /home/peter/work/git/btrdkr/target
[DEBUG] -- end configuration --
[DEBUG] Detected Maven Version: 3.6.3
[DEBUG] Detected Maven Version (3.6.3)  is allowed in [3.6.2,).
[ERROR] Using javaTool: /usr/lib/jvm/java-11-openjdk-11.0.9.11-4.fc32.x86_64/bin/java
[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=81070, ConflictMarker.markTime=89970, ConflictMarker.nodeCount=228, ConflictIdSorter.graphTime=81800, ConflictIdSorter.topsortTime=82090, ConflictIdSorter.conflictIdCount=85, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=1041089, ConflictResolver.conflictItemCount=181, DefaultDependencyCollector.collectTime=7133226, DefaultDependencyCollector.transformTime=1400719}
[ERROR] Executable jar: /home/peter/work/git/btrdkr/target/btrdkr-dev.jar
[DEBUG] Launching JVM with command line: /usr/lib/jvm/java-11-openjdk-11.0.9.11-4.fc32.x86_64/bin/java -Xverify:none -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/home/peter/work/git/btrdkr/target/classes/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -XX:TieredStopAtLevel=1 -Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager -jar /home/peter/work/git/btrdkr/target/btrdkr-dev.jar

I don't know it it is same or not.

I looks like the jvmArgs are applied. Hm. Strange that I get SSL exceptions afterwards.

It means that the value is mapped properly to the plugin instance but there might be a regression in how the value is propagated further into Quarkus.

I checked if there is any difference when running with 1.10.2 vs 1.9.2:

1.10.2:

[DEBUG] Launching JVM with command line: /usr/lib/jvm/java-11-openjdk-11.0.9.11-4.fc32.x86_64/bin/java -Xverify:none -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/home/peter/work/git/btrdkr/target/classes/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -XX:TieredStopAtLevel=1 -Xdebug -Xrunjdwp:transport=dt_socket,address=localhost:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager -jar /home/peter/work/git/btrdkr/target/btrdkr-dev.jar

1.9.2:

[DEBUG] Launching JVM with command line: /usr/lib/jvm/java-11-openjdk-11.0.9.11-4.fc32.x86_64/bin/java -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=/home/peter/work/git/btrdkr/target/classes/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit -XX:TieredStopAtLevel=1 -Xverify:none -Xdebug -Xrunjdwp:transport=dt_socket,address=0.0.0.0:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager -jar /home/peter/work/git/btrdkr/target/btrdkr-dev.jar

The same args are applied although in a slightly different order. I thing this should not matter. These are system properties that should only affect the JDK internal SSL implementation. I wonder what Quarkus 1.10.2 does in that regard.

Still, running only mvn quarkus:dev clearly has a problem too. I suspect the following patch has changed behavior:

https://github.com/quarkusio/quarkus/commit/d31f232c0fb6b49e29fe6a13b030504d6a1bbbfe#diff-dbfecb8ead57f5ad197c876b824b224ea62a3711ba4a3d2c0bb07da027aa11d1L369

Previously configuration() has been called to obtain configuration for executing generate-code goal from withing dev, after the patch, getPluginConfig(plugin, goal) is used.

Well spotted! configuration() is basically an empty configuration, so before that change, _no_ parameter would have been passed to generate-code, which isn't correct either.

The thing is that Maven just ignores unknown parameters but the way the DevMojo is invoking other goals internally is obviously not that lenient.

Let's see what @aloubyansky thinks about this.

Well, in fact, I'm using released version 1.10.2 and the code has had further changes since than in that part:

https://github.com/quarkusio/quarkus/commit/d4250ca24adbe991dadc9eb10cacdc176327837a#diff-dbfecb8ead57f5ad197c876b824b224ea62a3711ba4a3d2c0bb07da027aa11d1L422

Perhaps it is already fixed?

Perhaps it is already fixed?

I don't think so. The commit you referenced is about merging plugin level configuration with goal level configuration.

But what you could try as a workaround is:

            <plugin>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-maven-plugin</artifactId>
                <version>${quarkus.platform.version}</version>
                <executions>
                    <execution>
                        <id>build</id>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>dev</id>
                        <goals>
                            <goal>dev</goal>
                        </goals>
                        <phase>none</phase>
                        <configuration>
                            <jvmArgs>-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=${project.build.outputDirectory}/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit</jvmArgs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

and then mvn quarkus:dev@dev. Yeah I know, really ugly and verbose...

@plevart thanks for reporting the issue. Is there a chance you can give https://github.com/quarkusio/quarkus/pull/13701 a try? Just to make sure it solves all the issues in your app. Thanks.

I found out what was wrong with that SSL client configuration when mvn compile quarkus:dev was executed. On quarkus 1.9.2, the following plugin configuration:

                <configuration>
                    <jvmArgs>-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStore=${project.build.outputDirectory}/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit</jvmArgs>
                </configuration>

...gets propagated to JVM as 3 separate arguments (delimited with spaces) so this defined 3 system properties, while on Quarkus 1.10.2, it gets propagated as a single argument, so only one system property gets defined with:

key: javax.net.ssl.trustStoreType
value: JKS -Djavax.net.ssl.trustStore=${project.build.outputDirectory}/META-INF/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit

No wonder that such SSL client configuration didn't work ;-)...

@plevart So are you saying that there seems to be a bug in Quarkus 1.10 jvmArgs parsing logic?
In that case, can you please create another issue? Thanks!

Or did you somehow fix it yourself?

I don't think we need another issue. Let's keep this one open, it has all the context.

No, I didn't fix it. I tried specifying as as:

                <configuration>
                    <jvmArgs>
                        <jvmArg>-Djavax.net.ssl.trustStoreType=JKS</jvmArg>
                        <jvmArg>-Djavax.net.ssl.trustStore=${project.build.outputDirectory}/META-INF/security/cacerts</jvmArg>
                        <jvmArg>-Djavax.net.ssl.trustStorePassword=changeit</jvmArg>
                    </jvmArgs>
                </configuration>

But it is not supported: Basic element 'jvmArgs' must not contain child elements

Will NOT create another issue. So while I could try https://github.com/quarkusio/quarkus/pull/13701, I would't be able specify my arguments because I have 3 and it would only work with one correctly.

Was this page helpful?
0 / 5 - 0 ratings