sortpom icon indicating copy to clipboard operation
sortpom copied to clipboard

handle property order: please keep in alphabetical order

Open Pankraz76 opened this issue 7 months ago • 1 comments

expected the plugin to handle property order, to give natural sort and grouping.

property files are the perfect example why its important there to have form an order to avoid DRY and group what belongs together:

  • https://github.com/quarkusio/quarkus/pull/48382
  • https://github.com/quarkusio/quarkus/blob/cfe7a0522d54783a71dc0174d58d27e678766f88/independent-projects/parent/pom.xml#L19
Image Image
  <properties>
    <!-- Plugin versions (please keep in alphabetical order) -->
    <format.skip>false</format.skip>
    <insecure.repositories>ERROR</insecure.repositories>
    <jdk.min.version>${maven.compiler.argument.source}</jdk.min.version>
    <maven.compiler.argument.source>${maven.compiler.source}</maven.compiler.argument.source>
    <maven.compiler.argument.target>${maven.compiler.target}</maven.compiler.argument.target>
    <maven.compiler.argument.testSource>${maven.compiler.testSource}</maven.compiler.argument.testSource>
    <maven.compiler.argument.testTarget>${maven.compiler.testTarget}</maven.compiler.argument.testTarget>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.release>17</maven.compiler.release>
    <maven.compiler.source>${maven.compiler.release}</maven.compiler.source>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>${maven.compiler.release}</maven.compiler.target>
    <maven.compiler.target>17</maven.compiler.target>
    <maven.compiler.testSource>${maven.compiler.source}</maven.compiler.testSource>
    <maven.compiler.testTarget>${maven.compiler.target}</maven.compiler.testTarget>
    <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
    <maven.min.version>3.9.6</maven.min.version>
    <project.build.outputTimestamp>2024-01-01T00:00:00Z</project.build.outputTimestamp>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <useReleaseProfile>false</useReleaseProfile>
    <version.archetype.plugin>3.4.0</version.archetype.plugin>
    <version.buildhelper.plugin>3.6.1</version.buildhelper.plugin>
    <version.buildnumber.plugin>3.2.1</version.buildnumber.plugin>
    <version.clean.plugin>3.5.0</version.clean.plugin>
    <version.compiler.plugin>3.14.0</version.compiler.plugin>
    <version.dependency.plugin>3.8.1</version.dependency.plugin>
    <version.deploy.plugin>3.1.4</version.deploy.plugin>
    <version.enforcer.plugin>3.5.0</version.enforcer.plugin>
    <version.exec.plugin>3.5.1</version.exec.plugin>
    <version.failsafe.plugin>${version.surefire.plugin}</version.failsafe.plugin>
    <version.forbiddenapis-maven-plugin>3.4</version.forbiddenapis-maven-plugin>
    <version.formatter.plugin>2.26.0</version.formatter.plugin>
    <version.gpg.plugin>3.2.7</version.gpg.plugin>
    <version.impsort.plugin>1.12.0</version.impsort.plugin>
    <version.install.plugin>3.1.4</version.install.plugin>
    <version.jar.plugin>3.4.2</version.jar.plugin>
    <version.javadoc.plugin>3.11.2</version.javadoc.plugin>
    <version.plugin.plugin>3.15.1</version.plugin.plugin>
    <version.release.plugin>3.1.1</version.release.plugin>
    <version.resources.plugin>3.3.1</version.resources.plugin>
    <!-- Do not update for now as it is causing test issues in integration-tests/devmode
        java.lang.NoClassDefFoundError: com/salesforce/jprotoc/Generator -->
    <version.shade.plugin>3.2.1</version.shade.plugin>
    <version.source.plugin>3.3.1</version.source.plugin>
    <version.surefire.plugin>3.5.3</version.surefire.plugin>
    <version.versions.plugin>2.18.0</version.versions.plugin>
    <version.yaml-properties.plugin>1.1.3</version.yaml-properties.plugin>
  </properties>

Pankraz76 avatar Jun 14 '25 09:06 Pankraz76

whats the custom order as not alphabetical?

booleans first, then remaining?

before:

 <resource>
                <directory>${project.build.sourceDirectory}</directory>
                <includes>
                    <include>**/Version.properties</include>
                </includes>
                <filtering>true</filtering>
            </resource>

after:

<resource>
        <filtering>true</filtering>
        <directory>${project.build.sourceDirectory}</directory>
        <includes>
          <include>**/Version.properties</include>
        </includes>
      </resource>

Pankraz76 avatar Jun 14 '25 10:06 Pankraz76

The sort order of all standard elements are according standards, mostly according to the principle "most-significant-element-first": https://github.com/Ekryd/sortpom/wiki/PredefinedSortOrderProfiles The sort order can be changed and you can even define your own sort order if you want to.

Ekryd avatar Aug 04 '25 10:08 Ekryd

Also, sorry for the late reply!

Ekryd avatar Aug 04 '25 10:08 Ekryd