Repository: quarkusio/quarkus
Issue: Runner jar is deployed with a classifier that does not match quarkus.package.runner-suffix when building uber-jar

**Describe the bug**

when using the property
```
quarkus.package.runner-suffix=-fitnesse
```
the jar is created with the right suffix (my-artifactId-1.0.0-SNAPSHOT-fitnesse.jar), but it is installed in the local repository as  my-artifactId-1.0.0-SNAPSHOT-runner.jar

mvn install logs: 

```
[INFO] Installing /Projets/my-artifactId/target/my-artifactId-1.0.0-SNAPSHOT-fitnesse.jar to /home/loic/.m2/repository/my-groupId/my-artifactId/1.0.0-SNAPSHOT/my-artifactId-1.0.0-SNAPSHOT-runner.jar
```

This make it impossible to create two jars with different build time configuration.

**Expected behavior**
(Describe the expected behavior clearly and concisely.)
either the runner is not attached and it is responsibility of the user to attach it with the build-helper-maven-plugin, either the classifier used to attach the artifact match the quarkus.package.runner-suffix value

**Actual behavior**
(Describe the actual behavior clearly and concisely.)

the classifier is always runner

**To Reproduce**
Steps to reproduce the behavior:
1. create an empty quarkus project
2. add quarkus.package.uber-jar=true in application.properties
2. mvn install -Dquarkus.package.runner-suffix=-fitnesse
3. observe the local repository content


Edit: this only occurs when quarkus.package.uber-jar=true in application.properties. if not, the runner is not attached.


Changed files:
core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
devtools/maven/src/main/java/io/quarkus/maven/BuildMojo.java
core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/JarBuildItem.java
independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/JarResult.java

diff --git a/core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/JarBuildItem.java b/core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/JarBuildItem.java
index 2a27f9d42c0..5db2a885bee 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/JarBuildItem.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/pkg/builditem/JarBuildItem.java
@@ -11,12 +11,14 @@ public final class JarBuildItem extends SimpleBuildItem {
     private final Path originalArtifact;
     private final Path libraryDir;
     private final String type;
+    private final String classifier;
 
-    public JarBuildItem(Path path, Path originalArtifact, Path libraryDir, String type) {
+    public JarBuildItem(Path path, Path originalArtifact, Path libraryDir, String type, String classifier) {
         this.path = path;
         this.originalArtifact = originalArtifact;
         this.libraryDir = libraryDir;
         this.type = type;
+        this.classifier = classifier;
     }
 
     public boolean isUberJar() {
@@ -39,7 +41,11 @@ public String getType() {
         return type;
     }
 
+    public String getClassifier() {
+        return classifier;
+    }
+
     public JarResult toJarResult() {
-        return new JarResult(path, originalArtifact, libraryDir, type);
+        return new JarResult(path, originalArtifact, libraryDir, type, classifier);
     }
 }
diff --git a/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java b/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
index f1dfdc84ce4..e6e5d12856a 100644
--- a/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
+++ b/core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java
@@ -263,7 +263,12 @@ private JarBuildItem buildUberJar(CurateOutcomeBuildItem curateOutcomeBuildItem,
             originalJar = null;
         }
 
-        return new JarBuildItem(runnerJar, originalJar, null, PackageConfig.UBER_JAR);
+        return new JarBuildItem(runnerJar, originalJar, null, PackageConfig.UBER_JAR,
+                suffixToClassifier(packageConfig.runnerSuffix));
+    }
+
+    private String suffixToClassifier(String suffix) {
+        return suffix.startsWith("-") ? suffix.substring(1) : suffix;
     }
 
     private void buildUberJar0(CurateOutcomeBuildItem curateOutcomeBuildItem,
@@ -421,7 +426,7 @@ private JarBuildItem buildLegacyThinJar(CurateOutcomeBuildItem curateOutcomeBuil
         }
         runnerJar.toFile().setReadable(true, false);
 
-        return new JarBuildItem(runnerJar, null, libDir, PackageConfig.LEGACY);
+        return new JarBuildItem(runnerJar, null, libDir, PackageConfig.LEGACY, suffixToClassifier(packageConfig.runnerSuffix));
     }
 
     private JarBuildItem buildThinJar(CurateOutcomeBuildItem curateOutcomeBuildItem,
@@ -628,7 +633,7 @@ public void accept(Path path) {
                 }
             });
         }
-        return new JarBuildItem(initJar, null, libDir, packageConfig.type);
+        return new JarBuildItem(initJar, null, libDir, packageConfig.type, null);
     }
 
     private void copyDependency(CurateOutcomeBuildItem curateOutcomeBuildItem, Map<AppArtifactKey, List<Path>> runtimeArtifacts,
diff --git a/devtools/maven/src/main/java/io/quarkus/maven/BuildMojo.java b/devtools/maven/src/main/java/io/quarkus/maven/BuildMojo.java
index 6d00bd0193e..588f3b22c12 100644
--- a/devtools/maven/src/main/java/io/quarkus/maven/BuildMojo.java
+++ b/devtools/maven/src/main/java/io/quarkus/maven/BuildMojo.java
@@ -221,6 +221,7 @@ public void execute() throws MojoExecutionException {
 
                 Artifact original = project.getArtifact();
                 if (result.getJar() != null) {
+
                     if (result.getJar().isUberJar() && result.getJar().getOriginalArtifact() != null) {
                         final Path standardJar = curatedApplication.getAppModel().getAppArtifact().getPaths().getSinglePath();
                         if (Files.exists(standardJar)) {
@@ -234,7 +235,8 @@ public void execute() throws MojoExecutionException {
                         }
                     }
                     if (result.getJar().isUberJar()) {
-                        projectHelper.attachArtifact(project, result.getJar().getPath().toFile(), "runner");
+                        projectHelper.attachArtifact(project, result.getJar().getPath().toFile(),
+                                result.getJar().getClassifier());
                     }
                 }
             }
diff --git a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/JarResult.java b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/JarResult.java
index c9bd1b903f5..0a0f5a27d3c 100644
--- a/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/JarResult.java
+++ b/independent-projects/bootstrap/core/src/main/java/io/quarkus/bootstrap/app/JarResult.java
@@ -8,12 +8,14 @@ public final class JarResult {
     private final Path originalArtifact;
     private final Path libraryDir;
     private final String type;
+    private final String classifier;
 
-    public JarResult(Path path, Path originalArtifact, Path libraryDir, String type) {
+    public JarResult(Path path, Path originalArtifact, Path libraryDir, String type, String classifier) {
         this.path = path;
         this.originalArtifact = originalArtifact;
         this.libraryDir = libraryDir;
         this.type = type;
+        this.classifier = classifier;
     }
 
     public boolean isUberJar() {
@@ -36,4 +38,7 @@ public String getType() {
         return type;
     }
 
+    public String getClassifier() {
+        return classifier;
+    }
 }