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/12 12:20:00 UTC

[jira] [Created] (MNG-6801) MavenXpp3Writer doesn't retain structure

Liana Lupsa created MNG-6801:
--------------------------------

             Summary: 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


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:

<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>

second build trigger:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)