[
https://issues.apache.org/jira/browse/ARCHETYPE-584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17008264#comment-17008264
]
Ruwen Reddig commented on ARCHETYPE-584:
----------------------------------------
Stumpled over the same problem yesterday. Please have a look at my PR. I added
some explanation in the github comment.
Here is a minimal, reproducible example of the problem + fix
{code:java}
public static void main(String[] args) throws Exception {
String dummyPom =
"<project " +
"xmlns=\"http://maven.apache.org/POM/4.0.0\" " +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
"xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 " +
"http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n" +
" <modelVersion>4.0.0</modelVersion>\n" +
" <packaging>pom</packaging>\n" +
"</project>";
InputSource inputSource = new InputSource();
inputSource.setCharacterStream( new StringReader(dummyPom) );
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// uncomment the following lines to see the fix(?)
//dbf.setIgnoringElementContentWhitespace(true);
dbf.setNamespaceAware(true);
dbf.setSchema( getSchema() );
Document document = dbf.newDocumentBuilder().parse( inputSource );
Transformer tr = TransformerFactory.newInstance().newTransformer();
tr.setOutputProperty( OutputKeys.INDENT, "yes" );
// comment this line and output still looks okay?!!
tr.setOutputProperty( "{http://xml.apache.org/xslt}indent-amount", "2" );
StringWriter fileWriter = new StringWriter();
tr.transform( new DOMSource( document ), new StreamResult( fileWriter ) );
System.out.println(fileWriter.toString());
}
private static Schema getSchema() throws SAXException, MalformedURLException {
URI uri = URI.create("https://maven.apache.org/xsd/maven-4.0.0.xsd");
return SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
.newSchema(uri.toURL());
}
{code}
> Resulting root pom.xml from archetype generation has bad indentation
> --------------------------------------------------------------------
>
> Key: ARCHETYPE-584
> URL: https://issues.apache.org/jira/browse/ARCHETYPE-584
> Project: Maven Archetype
> Issue Type: Bug
> Components: Archetypes
> Affects Versions: 3.1.1, 3.1.2
> Reporter: Andre Prata
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> This issue does not apply to version 3.1.0, it was introduced in version
> 3.1.0.
>
> In our project, we have the default configuration of the root pom.xml that
> contains lines such as this:
> {code:java}
> <properties>
> <java.version>11</java.version>
> <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
> </properties>
> {code}
> These lines are still in good shape when added to the jar artifact. However,
> upon generating the project from the archetype, we get the following (note
> also the whitespace on the blank lines hinting at some indentation attempts,
> not just the unexpected line breaks)
> {code:java}
> <properties>
>
>
> <java.version>11</java.version>
>
>
> <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
>
> </properties>
>
> {code}
> This issue does *not* occur in in child module pom.xml files.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)