[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;
}
}