diff --git a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenModuleResourceConfiguration.java b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenModuleResourceConfiguration.java index b301813ee420..8a148be74f45 100644 --- a/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenModuleResourceConfiguration.java +++ b/plugins/maven/jps-plugin/src/org/jetbrains/jps/maven/model/impl/MavenModuleResourceConfiguration.java @@ -71,6 +71,8 @@ public class MavenModuleResourceConfiguration { @AbstractCollection(surroundWithTag = false, elementTag = "resource") public List testResources = new ArrayList(); + public String webArtifactName; + @Tag("web-resources") @AbstractCollection(surroundWithTag = false, elementTag = "resource") public List webResources = new ArrayList(); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java index e747fe628dfa..9974877a6108 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java @@ -17,6 +17,7 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.xmlb.XmlSerializer; import org.jdom.Document; import org.jdom.Element; +import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.maven.dom.references.MavenFilteredPropertyPsiReferenceProvider; import org.jetbrains.idea.maven.model.MavenId; import org.jetbrains.idea.maven.model.MavenResource; @@ -118,7 +119,7 @@ public class MavenResourceCompilerConfigurationGenerator { addResources(resourceConfig.resources, mavenProject.getResources()); addResources(resourceConfig.testResources, mavenProject.getTestResources()); - addWebResources(resourceConfig.webResources, mavenProject); + addWebResources(module, resourceConfig, mavenProject); resourceConfig.filteringExclusions.addAll(MavenProjectsTree.getFilterExclusions(mavenProject)); @@ -224,20 +225,27 @@ public class MavenResourceCompilerConfigurationGenerator { } } - private static void addWebResources(final List container, MavenProject mavenProject) { + private static void addWebResources(@NotNull Module module, MavenModuleResourceConfiguration moduleCfg, MavenProject mavenProject) { Element warCfg = mavenProject.getPluginConfiguration("org.apache.maven.plugins", "maven-war-plugin"); if (warCfg == null) return; Element webResources = warCfg.getChild("webResources"); if (webResources == null) return; + moduleCfg.webArtifactName = MavenUtil.getArtifactName("war", module, true); + for (Element resource : webResources.getChildren("resource")) { ResourceRootConfiguration r = new ResourceRootConfiguration(); String directory = resource.getChildTextTrim("directory"); if (StringUtil.isEmptyOrSpaces(directory)) continue; + if (!FileUtil.isAbsolute(directory)) { + directory = mavenProject.getDirectory() + '/' + directory; + } + r.directory = directory; r.isFiltered = Boolean.parseBoolean(resource.getChildTextTrim("filtering")); + r.targetPath = resource.getChildTextTrim("targetPath"); Element includes = resource.getChild("includes"); @@ -260,7 +268,7 @@ public class MavenResourceCompilerConfigurationGenerator { } } - container.add(r); + moduleCfg.webResources.add(r); } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java index e4f0fce0668d..71f22ec1698d 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java @@ -927,4 +927,9 @@ public class MavenUtil { return (V)res; } + public static String getArtifactName(String packaging, Module module, boolean exploded) { + final String baseName = module.getName() + ":" + packaging; + return exploded ? baseName + " exploded" : baseName; + } + }