You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Liana Lupsa (Jira)" <ji...@apache.org> on 2019/11/13 10:11:00 UTC
[jira] [Comment Edited] (MNG-6801) MavenXpp3Writer doesn't retain
structure
[ https://issues.apache.org/jira/browse/MNG-6801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16973210#comment-16973210 ]
Liana Lupsa edited comment on MNG-6801 at 11/13/19 10:10 AM:
-------------------------------------------------------------
Well I do think it's a bug because the output is not consistent. And I it's not only my issue - this problem has been reported by several people -
[https://stackoverflow.com/questions/22010062/retain-project-structureelement-order-while-writing-pom-file-using-mavenxpp3wr]
Asked 5 years, 8 months ago Viewed 90 times
Will someone from apache investigate it ?
was (Author: liana.lupsa1):
Well I do think it's a bug because the output is not consistent. And I it's not only my issue - this problem has been reported by several people -
[https://stackoverflow.com/questions/22010062/retain-project-structureelement-order-while-writing-pom-file-using-mavenxpp3wr]
Will someone from apache investigate it ?
> MavenXpp3Writer doesn't retain structure
> ----------------------------------------
>
> Key: MNG-6801
> URL: https://issues.apache.org/jira/browse/MNG-6801
> Project: Maven
> Issue Type: Bug
> Components: Plugins and Lifecycle
> Reporter: Liana Lupsa
> Priority: Major
>
> Context:
> We are using pipeline-utility-steps-plugin which is a jenkins plugin which uses the following classes:
> [https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/src/main/java/org/jenkinsci/plugins/pipeline/utility/steps/maven/ReadMavenPomStep.java].
> [https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/src/main/java/org/jenkinsci/plugins/pipeline/utility/steps/maven/WriteMavenPomStep.java#L32]
> In our Jenkins file we have a stage that overwrites the version in the pom with the computed version and for this we need pipeline-utility-steps-plugin.
> The problem is that the tags in the pom.xml are never retained in the same order. The elements in the pom file are completelly rearranged.
> For consistency reasons and idempotency we need to retain the structure and simply update one line.
> Status:
> After evaluating the plugin code we noticed that it uses:
> [https://github.com/jenkinsci/pipeline-utility-steps-plugin/blob/master/src/main/java/org/jenkinsci/plugins/pipeline/utility/steps/maven/WriteMavenPomStep.java#L32]
> and imports:
> import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
> with [https://maven.apache.org/ref/3.3.9/maven-model/apidocs/src-html/org/apache/maven/model/io/xpp3/MavenXpp3Writer.html]
> which uses
> XmlSerializer serializer = new MXSerializer();
> [https://github.com/sonatype/plexus-utils/blob/master/src/main/java/org/codehaus/plexus/util/xml/pull/MXSerializer.java]
> We think that maven XmlSerializer causes this problem.
> Example of the pom.xml changes:
> first build trigger:
> run 1:
> <properties>
> <javax.version>3.1.0</javax.version>
> <mockito.version>1.10.19</mockito.version>
> <hamcrest.version>2.1</hamcrest.version>
> <openam.version>6.5.1</openam.version>
> <lombok.version>1.18.6</lombok.version>
> <junit.version>4.12</junit.version>
> </properties>
> run 2:
> <properties>
> <mockito.version>1.10.19</mockito.version>
> <javax.version>3.1.0</javax.version>
> <hamcrest.version>2.1</hamcrest.version>
> <openam.version>6.5.1</openam.version>
> <lombok.version>1.18.6</lombok.version>
> <junit.version>4.12</junit.version>
> </properties>
> and run 3:
> <properties>
> <javax.version>3.1.0</javax.version>
> <mockito.version>1.10.19</mockito.version>
> <hamcrest.version>2.1</hamcrest.version>
> <openam.version>6.5.1</openam.version>
> <lombok.version>1.18.6</lombok.version>
> <junit.version>4.12</junit.version>
> </properties>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)