diff --git a/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java b/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java index 56b1e6c0..2e8a19c9 100644 --- a/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java +++ b/src/main/java/org/apache/maven/plugins/war/AbstractWarMojo.java @@ -459,7 +459,10 @@ protected String[] getDependentWarIncludes() { * @throws MojoFailureException in case of failure */ public void buildExplodedWebapp(File webapplicationDirectory) throws MojoExecutionException, MojoFailureException { - webapplicationDirectory.mkdirs(); + if (!webapplicationDirectory.exists() && !webapplicationDirectory.mkdirs()) { + throw new MojoExecutionException( + "Failed to create directory: " + webapplicationDirectory.getAbsolutePath()); + } try { buildWebapp(project, webapplicationDirectory); diff --git a/src/main/java/org/apache/maven/plugins/war/packaging/AbstractWarPackagingTask.java b/src/main/java/org/apache/maven/plugins/war/packaging/AbstractWarPackagingTask.java index ee0fa8d1..5ca23d76 100644 --- a/src/main/java/org/apache/maven/plugins/war/packaging/AbstractWarPackagingTask.java +++ b/src/main/java/org/apache/maven/plugins/war/packaging/AbstractWarPackagingTask.java @@ -254,7 +254,10 @@ protected boolean copyFilteredFile( encoding = context.getResourceEncoding(); } // fix for MWAR-36, ensures that the parent dir are created first - targetFile.getParentFile().mkdirs(); + File parentDir = targetFile.getParentFile(); + if (!parentDir.exists() && !parentDir.mkdirs()) { + throw new MojoExecutionException("Failed to create directory: " + parentDir.getAbsolutePath()); + } context.getMavenFileFilter().copyFile(file, targetFile, true, context.getFilterWrappers(), encoding); } catch (MavenFilteringException e) { diff --git a/src/main/java/org/apache/maven/plugins/war/packaging/ClassesPackagingTask.java b/src/main/java/org/apache/maven/plugins/war/packaging/ClassesPackagingTask.java index 396d8dbb..e87155a2 100644 --- a/src/main/java/org/apache/maven/plugins/war/packaging/ClassesPackagingTask.java +++ b/src/main/java/org/apache/maven/plugins/war/packaging/ClassesPackagingTask.java @@ -52,8 +52,8 @@ public ClassesPackagingTask(Overlay currentProjectOverlay) { @Override public void performPackaging(WarPackagingContext context) throws MojoExecutionException { final File webappClassesDirectory = new File(context.getWebappDirectory(), CLASSES_PATH); - if (!webappClassesDirectory.exists()) { - webappClassesDirectory.mkdirs(); + if (!webappClassesDirectory.exists() && !webappClassesDirectory.mkdirs()) { + throw new MojoExecutionException("Failed to create directory: " + webappClassesDirectory.getAbsolutePath()); } if (context.getClassesDirectory().exists() diff --git a/src/main/java/org/apache/maven/plugins/war/packaging/WarProjectPackagingTask.java b/src/main/java/org/apache/maven/plugins/war/packaging/WarProjectPackagingTask.java index 968b7305..d8e4d2ba 100644 --- a/src/main/java/org/apache/maven/plugins/war/packaging/WarProjectPackagingTask.java +++ b/src/main/java/org/apache/maven/plugins/war/packaging/WarProjectPackagingTask.java @@ -79,9 +79,13 @@ public void performPackaging(WarPackagingContext context) throws MojoExecutionEx // Prepare the INF directories File webinfDir = new File(context.getWebappDirectory(), WEB_INF_PATH); - webinfDir.mkdirs(); + if (!webinfDir.exists() && !webinfDir.mkdirs()) { + throw new MojoExecutionException("Failed to create directory: " + webinfDir.getAbsolutePath()); + } File metainfDir = new File(context.getWebappDirectory(), META_INF_PATH); - metainfDir.mkdirs(); + if (!metainfDir.exists() && !metainfDir.mkdirs()) { + throw new MojoExecutionException("Failed to create directory: " + metainfDir.getAbsolutePath()); + } handleWebResources(context);