IDEA-25934 Maven: Webapp resources filtering

store web resources configuration.
This commit is contained in:
Sergey Evdokimov
2013-11-11 14:09:46 +04:00
parent df137ae869
commit 6e65f2be46
3 changed files with 18 additions and 3 deletions
@@ -71,6 +71,8 @@ public class MavenModuleResourceConfiguration {
@AbstractCollection(surroundWithTag = false, elementTag = "resource")
public List<ResourceRootConfiguration> testResources = new ArrayList<ResourceRootConfiguration>();
public String webArtifactName;
@Tag("web-resources")
@AbstractCollection(surroundWithTag = false, elementTag = "resource")
public List<ResourceRootConfiguration> webResources = new ArrayList<ResourceRootConfiguration>();
@@ -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<ResourceRootConfiguration> 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);
}
}
@@ -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;
}
}