[MJAVADOC-819] Align archive generation code with Maven Source Plugin

This closes #332
diff --git a/src/main/java/org/apache/maven/plugins/javadoc/JavadocJarMojo.java b/src/main/java/org/apache/maven/plugins/javadoc/JavadocJarMojo.java
index f8ec116..02a1ff9 100644
--- a/src/main/java/org/apache/maven/plugins/javadoc/JavadocJarMojo.java
+++ b/src/main/java/org/apache/maven/plugins/javadoc/JavadocJarMojo.java
@@ -221,23 +221,14 @@
      * @throws IOException {@link IOException}
      */
     private File generateArchive(File javadocFiles, String jarFileName) throws ArchiverException, IOException {
-        File javadocJar = new File(jarOutputDirectory, jarFileName);
-
-        if (javadocJar.exists()) {
-            javadocJar.delete();
-        }
-
         MavenArchiver archiver = new MavenArchiver();
-        archiver.setCreatedBy("Maven Javadoc Plugin", "org.apache.maven.plugins", "maven-javadoc-plugin");
         archiver.setArchiver(jarArchiver);
-        archiver.setOutputFile(javadocJar);
+        archiver.setCreatedBy("Maven Javadoc Plugin", "org.apache.maven.plugins", "maven-javadoc-plugin");
 
         // configure for Reproducible Builds based on outputTimestamp value
         archiver.configureReproducibleBuild(outputTimestamp);
 
-        if (!javadocFiles.exists()) {
-            getLog().warn("JAR will be empty - no content was marked for inclusion!");
-        } else {
+        if (javadocFiles.exists()) {
             archiver.getArchiver().addDirectory(javadocFiles, DEFAULT_INCLUDES, DEFAULT_EXCLUDES);
         }
 
@@ -254,14 +245,20 @@
             archive.setManifestFile(defaultManifestFile);
         }
 
+        File outputFile = new File(jarOutputDirectory, jarFileName);
+
+        // Why do we do this?
+        if (outputFile.exists()) {
+            outputFile.delete();
+        }
+        archiver.setOutputFile(outputFile);
+
         try {
             archiver.createArchive(session, project, archive);
-        } catch (ManifestException e) {
-            throw new ArchiverException("ManifestException: " + e.getMessage(), e);
-        } catch (DependencyResolutionRequiredException e) {
-            throw new ArchiverException("DependencyResolutionRequiredException: " + e.getMessage(), e);
+        } catch (ManifestException | DependencyResolutionRequiredException e) {
+            throw new ArchiverException("Error creating Javadoc archive: " + e.getMessage(), e);
         }
 
-        return javadocJar;
+        return outputFile;
     }
 }