Repository: quarkusio/quarkus
Issue: Native build fails when additionalBuildArg is commented out

Native build fails when `additionalBuildArg` is commented out. Thrown exception is: Failed to generate a native image: Failed to augment application classes: Property quarkus.native.additional-build-args not found

It's happening with 0.26.1, 0.27.0 and master when using quarkus-maven-plugin - native-image goal definition in pom.xml. Wasn't happening with 0.25.0 and earlier versions.

Snippet from pom.xml:
```xml
                <configuration>
                  <enableHttpUrlHandler>true</enableHttpUrlHandler>
                  <additionalBuildArgs>
                    <!-- <additionalBuildArg>-Dfoo</additionalBuildArg> -->
                  </additionalBuildArgs>
                </configuration>
```

Workaround:
Comment out or remove whole `<additionalBuildArgs>`


Stacktrace:
```
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:0.27.0:native-image (default) on project getting-started: Failed to generate a native image: Failed to augment application classes: Property quarkus.native.additional-build-args not found -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.quarkus:quarkus-maven-plugin:0.27.0:native-image (default) on project getting-started: Failed to generate a native image
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    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: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: Failed to generate a native image
    at io.quarkus.maven.NativeImageMojo.execute (NativeImageMojo.java:305)
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    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: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: io.quarkus.creator.AppCreatorException: Failed to augment application classes
    at io.quarkus.creator.phase.augment.AugmentTask.run (AugmentTask.java:190)
    at io.quarkus.creator.phase.augment.AugmentTask.run (AugmentTask.java:48)
    at io.quarkus.creator.CuratedApplicationCreator.runTask (CuratedApplicationCreator.java:139)
    at io.quarkus.maven.NativeImageMojo.execute (NativeImageMojo.java:303)
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    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: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: java.util.NoSuchElementException: Property quarkus.native.additional-build-args not found
    at io.smallrye.config.SmallRyeConfig.propertyNotFound (SmallRyeConfig.java:221)
    at io.smallrye.config.SmallRyeConfig.getValues (SmallRyeConfig.java:87)
    at io.smallrye.config.SmallRyeConfig.getValues (SmallRyeConfig.java:72)
    at io.quarkus.runtime.configuration.ConfigUtils.getValues (ConfigUtils.java:113)
    at io.quarkus.deployment.configuration.ObjectListConfigType.acceptConfigurationValueIntoGroup (ObjectListConfigType.java:102)
    at io.quarkus.deployment.configuration.GroupConfigType.acceptConfigurationValueIntoLeaf (GroupConfigType.java:238)
    at io.quarkus.deployment.configuration.ObjectListConfigType.acceptConfigurationValue (ObjectListConfigType.java:48)
    at io.quarkus.deployment.configuration.ConfigDefinition.loadConfiguration (ConfigDefinition.java:501)
    at io.quarkus.deployment.ExtensionLoader.loadStepsFrom (ExtensionLoader.java:229)
    at io.quarkus.deployment.QuarkusAugmentor.run (QuarkusAugmentor.java:85)
    at io.quarkus.creator.phase.augment.AugmentTask.run (AugmentTask.java:181)
    at io.quarkus.creator.phase.augment.AugmentTask.run (AugmentTask.java:48)
    at io.quarkus.creator.CuratedApplicationCreator.runTask (CuratedApplicationCreator.java:139)
    at io.quarkus.maven.NativeImageMojo.execute (NativeImageMojo.java:303)
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    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: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)
```

Steps to reproduce:
```
mvn io.quarkus:quarkus-maven-plugin:0.26.0:create     -DprojectGroupId=org.acme     -DprojectArtifactId=getting-started     -DclassName="org.acme.quickstart.GreetingResource"     -Dpath="/hello"
cd getting-started
sed -i "" "s/0.26.0/0.27.0/g" pom.xml
code pom.xml ## adjust configuration to match above snippet
mvn clean verify -Dnative
```

Changed files:
devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java, devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java

diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java
index 5b9f3462fab..6bf9329ffaa 100644
--- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java
+++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusNative.java
@@ -434,7 +434,7 @@ public void accept(ConfigBuilder configBuilder) {
 
                 configs.add("quarkus.native.add-all-charsets", addAllCharsets);
 
-                if (additionalBuildArgs != null) {
+                if (additionalBuildArgs != null && !additionalBuildArgs.isEmpty()) {
                     configs.add("quarkus.native.additional-build-args",
                             additionalBuildArgs.stream()
                                     .map(val -> val.replace("\\\\", "\\\\\\\\"))
@@ -448,9 +448,9 @@ public void accept(ConfigBuilder configBuilder) {
 
                 configs.add("quarkus.native.debug-symbols", debugSymbols);
                 configs.add("quarkus.native.enable-reports", enableReports);
-                if (containerRuntime != null) {
+                if (containerRuntime != null && !containerRuntime.trim().isEmpty()) {
                     configs.add("quarkus.native.container-runtime", containerRuntime);
-                } else if (dockerBuild != null) {
+                } else if (dockerBuild != null && !dockerBuild.trim().isEmpty()) {
                     if (!dockerBuild.isEmpty() && !dockerBuild.toLowerCase().equals("false")) {
                         if (dockerBuild.toLowerCase().equals("true")) {
                             configs.add("quarkus.native.container-runtime", "docker");
@@ -459,7 +459,7 @@ public void accept(ConfigBuilder configBuilder) {
                         }
                     }
                 }
-                if (containerRuntimeOptions != null) {
+                if (containerRuntimeOptions != null && !containerRuntimeOptions.trim().isEmpty()) {
                     configs.add("quarkus.native.container-runtime-options", containerRuntimeOptions);
                 }
                 configs.add("quarkus.native.dump-proxies", dumpProxies);
@@ -479,10 +479,10 @@ public void accept(ConfigBuilder configBuilder) {
 
                 configs.add("quarkus.native.full-stack-traces", fullStackTraces);
 
-                if (graalvmHome != null) {
+                if (graalvmHome != null && !graalvmHome.trim().isEmpty()) {
                     configs.add("quarkus.native.graalvm-home", graalvmHome);
                 }
-                if (nativeImageXmx != null) {
+                if (nativeImageXmx != null && !nativeImageXmx.trim().isEmpty()) {
                     configs.add("quarkus.native.native-image-xmx", nativeImageXmx);
                 }
                 configs.add("quarkus.native.report-errors-at-runtime", reportErrorsAtRuntime);
diff --git a/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java b/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java
index e832f9b692c..7678980dc51 100644
--- a/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java
+++ b/devtools/maven/src/main/java/io/quarkus/maven/NativeImageMojo.java
@@ -324,7 +324,7 @@ public void accept(ConfigBuilder configBuilder) {
                 if (addAllCharsets != null) {
                     configs.add("quarkus.native.add-all-charsets", addAllCharsets.toString());
                 }
-                if (additionalBuildArgs != null) {
+                if (additionalBuildArgs != null && !additionalBuildArgs.isEmpty()) {
                     configs.add("quarkus.native.additional-build-args", additionalBuildArgs);
                 }
                 if (autoServiceLoaderRegistration != null) {
@@ -345,10 +345,10 @@ public void accept(ConfigBuilder configBuilder) {
                 if (enableReports != null) {
                     configs.add("quarkus.native.enable-reports", enableReports.toString());
                 }
-                if (containerRuntime != null) {
+                if (containerRuntime != null && !containerRuntime.trim().isEmpty()) {
                     configs.add("quarkus.native.container-runtime", containerRuntime);
-                } else if (dockerBuild != null) {
-                    if (!dockerBuild.isEmpty() && !dockerBuild.toLowerCase().equals("false")) {
+                } else if (dockerBuild != null && !dockerBuild.trim().isEmpty()) {
+                    if (!dockerBuild.toLowerCase().equals("false")) {
                         if (dockerBuild.toLowerCase().equals("true")) {
                             configs.add("quarkus.native.container-runtime", "docker");
                         } else {
@@ -356,7 +356,7 @@ public void accept(ConfigBuilder configBuilder) {
                         }
                     }
                 }
-                if (containerRuntimeOptions != null) {
+                if (containerRuntimeOptions != null && !containerRuntimeOptions.trim().isEmpty()) {
                     configs.add("quarkus.native.container-runtime-options", containerRuntimeOptions);
                 }
                 if (dumpProxies != null) {
@@ -395,13 +395,13 @@ public void accept(ConfigBuilder configBuilder) {
                 if (fullStackTraces != null) {
                     configs.add("quarkus.native.full-stack-traces", fullStackTraces.toString());
                 }
-                if (graalvmHome != null) {
+                if (graalvmHome != null && !graalvmHome.trim().isEmpty()) {
                     configs.add("quarkus.native.graalvm-home", graalvmHome.toString());
                 }
-                if (javaHome != null) {
+                if (javaHome != null && !javaHome.toString().isEmpty()) {
                     configs.add("quarkus.native.java-home", javaHome.toString());
                 }
-                if (nativeImageXmx != null) {
+                if (nativeImageXmx != null && !nativeImageXmx.trim().isEmpty()) {
                     configs.add("quarkus.native.native-image-xmx", nativeImageXmx.toString());
                 }
                 if (reportErrorsAtRuntime != null) {