void (@NotNull JpsProject project, @NotNull Element componentTag) { Map<String, JpsAntBuildFileOptions> optionsMap = new HashMap<>(); for (Element buildFileTag : JDOMUtil.getChildren(componentTag, "buildFile")) { String url = buildFileTag.getAttributeValue("url"); JpsAntBuildFileOptionsImpl options = new JpsAntBuildFileOptionsImpl(); options.setMaxHeapSize(StringUtil.parseInt(getValueAttribute(buildFileTag, "maximumHeapSize"), 128)); options.setMaxStackSize(StringUtil.parseInt(getValueAttribute(buildFileTag, "maximumStackSize"), 2)); options.setCustomJdkName(getValueAttribute(buildFileTag, "customJdkName")); Element antReference = buildFileTag.getChild("antReference"); if (antReference != null) { options.setUseProjectDefaultAnt(Boolean.parseBoolean(antReference.getAttributeValue("projectDefault"))); options.setAntInstallationName(antReference.getAttributeValue("name")); } for (Element classpathEntry : JDOMUtil.getChildren(buildFileTag.getChild("additionalClassPath"), "entry")) { String fileUrl = classpathEntry.getAttributeValue("path"); String dirUrl = classpathEntry.getAttributeValue("dir"); if (fileUrl != null) { options.addJarPath(JpsPathUtil.urlToPath(fileUrl)); } else if (dirUrl != null) { options.addJarDirectory(JpsPathUtil.urlToPath(dirUrl)); } } for (Element propertyTag : JDOMUtil.getChildren(buildFileTag.getChild("properties"), "property")) { String name = propertyTag.getAttributeValue("name"); String value = propertyTag.getAttributeValue("value"); if (name != null && value != null) { options.addProperty(name, value); } } optionsMap.put(url, options); } Element defaultAnt = componentTag.getChild("defaultAnt"); String projectDefaultAntName; if (defaultAnt != null) { projectDefaultAntName = defaultAnt.getAttributeValue("name"); } else { projectDefaultAntName = null; } project.getContainer().setChild(JpsAntConfigurationImpl.ROLE, new JpsAntConfigurationImpl(optionsMap, projectDefaultAntName)); }