Uploaded image for project: 'Maven Shared Components'
  1. Maven Shared Components
  2. MSHARED-35

Recreating pom.properties always breaks the archivers uptodate check

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • maven-archiver
    • None

    Description

      The maven-archiver creates a file called pom.properties on every invocation. (Unless the flag "addMavenDescriptor" is set to false, which few people do.) This forced recreation makes the uptodate check fail. In other words, jar files are always recreated, regardless whether anything was recompiled. Obviously, this makes the uptodate check of war files etc. fail as well, because the included jar files are always changed.. This is a major drawback, because it makes Maven much slower than, for example, Ant-.

      The attached patch proposes a solution for the same problem. What the patch does:

      • It is obviously bad, that the generated pom.properties file is in the projects directory. The
        patch moves the file to ${project.build.directory}/maven-archiver, which seems to me to
        be a more sensible solution.
      • Second, whether we like it or not, there are projects, which create multiple artifacts. In other
        words, it isn't good to have a single file. The patch renames the pom.properties file to
        ${groupId}/$artifactFinalName.properties. Hopefully, this is sufficiently unique.
      • Finally, the patch makes the maven-archiver check, whether the pom.properties file has
        actually changed. (In other words, whether groupId, artifactId, or version have changed.)
        It does so, by writing the file to an internal buffer and comparing the file on the disk and
        the internal buffer (after skipping the line with the timestamp).

      In other words, in the usual case, where groupId, artifactId and version haven't changed, the pom.properties file remains unchanged. In particular, the jar file doesn't need to be recreated.

      Attachments

        1. maven-archiver-properties-3.patch
          10 kB
          Jochen Walz
        2. maven-archiver-properties-2.patch
          14 kB
          Jochen Walz
        3. maven-archiver-properties.patch
          6 kB
          Jochen Walz
        4. maven-archiver-MNG2854-4.patch
          11 kB
          Jochen Walz

        Issue Links

          Activity

            People

              carlos Carlos Sanchez Gonzalez
              jochen.wiedmann@gmail.com Jochen Wiedmann
              Votes:
              5 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: