diff --git a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/compiler/MavenWebArtifactRootCopyingHandlerProvider.java b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/compiler/MavenWebArtifactRootCopyingHandlerProvider.java index 49c24e904a88..8203c555a050 100644 --- a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/compiler/MavenWebArtifactRootCopyingHandlerProvider.java +++ b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/compiler/MavenWebArtifactRootCopyingHandlerProvider.java @@ -73,18 +73,14 @@ public class MavenWebArtifactRootCopyingHandlerProvider extends ArtifactRootCopy } ResourceRootConfiguration rootConfiguration = artifactResourceConfiguration.getRootConfiguration(root); - String relativePathInWar = null; + String relativeDirInWar = null; if (rootConfiguration == null) { if (artifact.getOutputPath() != null && !FileUtil.isAncestor(new File(artifactResourceConfiguration.warSourceDirectory), root, false)) { - relativePathInWar = FileUtil.getRelativePath(new File(artifact.getOutputPath()), new File(targetDirectory, root.getName())); - if (relativePathInWar != null) { - // cut the exploded directory name - relativePathInWar = StringUtil.substringAfter(relativePathInWar, File.separator); - } - if (relativePathInWar == null) return null; + relativeDirInWar = FileUtil.getRelativePath(new File(artifact.getOutputPath()), targetDirectory); + if (relativeDirInWar == null) return null; } - return new MavenWebArtifactCopyingHandler(artifactResourceConfiguration, moduleResourceConfiguration, relativePathInWar); + return new MavenWebArtifactCopyingHandler(artifactResourceConfiguration, moduleResourceConfiguration, relativeDirInWar); } MavenResourceFileProcessor fileProcessor = new MavenResourceFileProcessor(projectConfiguration, model.getProject(), moduleResourceConfiguration); @@ -98,14 +94,14 @@ public class MavenWebArtifactRootCopyingHandlerProvider extends ArtifactRootCopy public MavenWebArtifactCopyingHandler(@NotNull MavenWebArtifactConfiguration artifactConfig, @NotNull MavenModuleResourceConfiguration moduleResourceConfig, - @Nullable String relativePath) { - this(getWarRootConfig(artifactConfig, moduleResourceConfig), moduleResourceConfig, relativePath); + @Nullable String relativeDirectoryPath) { + this(getWarRootConfig(artifactConfig, moduleResourceConfig), moduleResourceConfig, relativeDirectoryPath); } private MavenWebArtifactCopyingHandler(@NotNull ResourceRootConfiguration warRootConfig, @NotNull MavenModuleResourceConfiguration moduleResourceConfig, - @Nullable String relativePath) { - this(new MavenResourceFileFilter(new File(toSystemDependentName(warRootConfig.directory)), warRootConfig, relativePath), + @Nullable String relativeDirectoryPath) { + this(new MavenResourceFileFilter(new File(toSystemDependentName(warRootConfig.directory)), warRootConfig, relativeDirectoryPath), warRootConfig, moduleResourceConfig); } diff --git a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourceFileFilter.java b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourceFileFilter.java index 16ff751e4f5d..35ee32e52224 100644 --- a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourceFileFilter.java +++ b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenResourceFileFilter.java @@ -24,27 +24,27 @@ import java.io.File; import java.io.FileFilter; /** -* @author nik -*/ + * @author nik + */ public class MavenResourceFileFilter implements FileFilter { private File myRoot; - private String myRelativePath; + private String myRelativeDirectoryPath; private MavenPatternFileFilter myMavenPatternFileFilter; public MavenResourceFileFilter(@NotNull File rootFile, @NotNull FilePattern filePattern) { this(rootFile, filePattern, null); } - public MavenResourceFileFilter(@NotNull File rootFile, @NotNull FilePattern filePattern, @Nullable String relativePath) { + public MavenResourceFileFilter(@NotNull File rootFile, @NotNull FilePattern filePattern, @Nullable String relativeDirectoryPath) { myMavenPatternFileFilter = new MavenPatternFileFilter(filePattern.includes, filePattern.excludes); myRoot = rootFile; - myRelativePath = relativePath; + myRelativeDirectoryPath = relativeDirectoryPath; } @Override public boolean accept(@NotNull File file) { - String relPath = myRelativePath != null && myRelativePath.endsWith(file.getName()) ? - myRelativePath : FileUtil.getRelativePath(myRoot, file); - return relPath != null && myMavenPatternFileFilter.accept(relPath); + String relativeFilePath = myRelativeDirectoryPath != null ? + myRelativeDirectoryPath + File.separator + file.getName() : FileUtil.getRelativePath(myRoot, file); + return relativeFilePath != null && myMavenPatternFileFilter.accept(relativeFilePath); } }