in src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorWriter.java [71:154]
public static void write(ModuleDescriptor md, File output, PomWriterOptions options)
throws IOException {
LineNumberReader in;
if (options.getTemplate() == null) {
in = new LineNumberReader(new InputStreamReader(
PomModuleDescriptorWriter.class.getResourceAsStream("pom.template")));
} else {
in = new LineNumberReader(new InputStreamReader(new FileInputStream(
options.getTemplate())));
}
if (output.getParentFile() != null) {
output.getParentFile().mkdirs();
}
PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(output),
StandardCharsets.UTF_8));
try {
IvySettings settings = IvyContext.getContext().getSettings();
IvyVariableContainer variables = new IvyVariableContainerWrapper(
settings.getVariableContainer());
variables.setVariable("ivy.pom.license", SKIP_LINE, true);
variables.setVariable("ivy.pom.header", SKIP_LINE, true);
variables.setVariable("ivy.pom.groupId", SKIP_LINE, true);
variables.setVariable("ivy.pom.artifactId", SKIP_LINE, true);
variables.setVariable("ivy.pom.version", SKIP_LINE, true);
variables.setVariable("ivy.pom.packaging", SKIP_LINE, true);
variables.setVariable("ivy.pom.name", SKIP_LINE, true);
variables.setVariable("ivy.pom.description", SKIP_LINE, true);
variables.setVariable("ivy.pom.url", SKIP_LINE, true);
if (options.getLicenseHeader() != null) {
variables.setVariable("ivy.pom.license", options.getLicenseHeader(), true);
}
if (options.isPrintIvyInfo()) {
String header = "<!--\n" + " Apache Maven 2 POM generated by Apache Ivy\n"
+ " " + Ivy.getIvyHomeURL() + "\n" + " Apache Ivy version: "
+ Ivy.getIvyVersion() + " " + Ivy.getIvyDate() + "\n" + "-->";
variables.setVariable("ivy.pom.header", header, true);
}
setModuleVariables(md, variables, options);
boolean dependenciesPrinted = false;
int lastIndent = 0;
int indent = 0;
String line = in.readLine();
while (line != null) {
line = IvyPatternHelper.substituteVariables(line, variables);
if (line.contains(SKIP_LINE)) {
// skip this line
line = in.readLine();
continue;
}
if (line.trim().isEmpty()) {
// empty line
out.println(line);
line = in.readLine();
continue;
}
lastIndent = indent;
indent = line.indexOf('<');
if (!dependenciesPrinted && line.contains("</dependencies>")) {
printDependencies(md, out, options, indent, false);
dependenciesPrinted = true;
}
if (!dependenciesPrinted && line.contains("</project>")) {
printDependencies(md, out, options, lastIndent, true);
dependenciesPrinted = true;
}
out.println(line);
line = in.readLine();
}
} finally {
in.close();
out.close();
}
}