Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Section
titlePOM Configuration Collector

Use the following to add the plugin to your POM to collect the build information:

Code Block Placeholder
<plugin>
  <groupId>${project-group-id}</groupId>
  <artifactId>${project-artifact-id}</artifactId>
  <version>${project-version}</version>
  <executions>
    <execution>
      <phase>initialize</phase>
      <goals>
        <goal>provide-buildmetadata</goal>
      </goals>
    </execution>
  </executions>
</plugin>        

If you are using Git, you may want to add the remoteVersion to compare with. In the following example we compare to origin/master:

Code Block Placeholder
<plugin>
  <groupId>${project-group-id}</groupId>
  <artifactId>${project-artifact-id}</artifactId>
  <version>${project-version}</version>
  <executions>
    <execution>
      <phase>initialize</phase>
      <goals>
        <goal>provide-buildmetadata</goal>
      </goals>
      <configuration>
        <remoteVersion>origin/master</remoteVersion>
      </configuration>
    </execution>
  </executions>
</plugin>        

Please refer to Accessing Artifacts on information to download the plugin.

The file buildmetadata.properties is written to the META-INF folder by default. You may change the by changing the destination of the propertiesOutputFile property.

For multi projects it is especially useful to map the output file to packaging types. This is done by (following is the default configuration if it is not specified):

Code Block Placeholder
<plugin>
  <groupId>${project-group-id}</groupId>
  <artifactId>${project-artifact-id}</artifactId>
  <version>${project-version}</version>
  <configuration>
    <addProjectInfo>true</addProjectInfo>
    <propertyOutputFileMapping>
      <fileMapping>
        <packaging>war</packaging>
        <outputFile>${project.build.directory}/${project-artifact-id}-${project-version}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>ear</packaging>
        <outputFile>${project.build.directory}/${project-artifact-id}-${project-version}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>sar</packaging>
        <outputFile>${project.build.directory}/${project-artifact-id}-${project-version}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>rar</packaging>
        <outputFile>${project.build.directory}/${project-artifact-id}-${project-version}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>par</packaging>
        <outputFile>${project.build.directory}/${project-artifact-id}-${project-version}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>atlassian-plugin</packaging>
        <outputFile>${project.build.outputDirectory}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>jar</packaging>
        <outputFile>${project.build.outputDirectory}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>ejb</packaging>
        <outputFile>${project.build.outputDirectory}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>maven-archetype</packaging>
        <outputFile>${project.build.outputDirectory}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>maven-plugin</packaging>
        <outputFile>${project.build.outputDirectory}/META-INF/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>eclipse-plugin</packaging>
        <outputFile>${project.build.directory}/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>eclipse-feature</packaging>
        <outputFile>${project.build.directory}/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>eclipse-repository</packaging>
        <outputFile>${project.build.directory}/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>eclipse-update-site</packaging>
        <outputFile>${project.build.directory}/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>targetplatform</packaging>
        <outputFile>${project.build.directory}/build.properties</outputFile>
      </fileMapping>
      <fileMapping>
        <packaging>pom</packaging>
        <outputFile>${project.build.directory}/build.properties</outputFile>
      </fileMapping>
    </propertyOutputFileMapping>
  </configuration>
</plugin>     

Packaging types not specified here default to propertiesOutputFile.

If you want to disable the propertyOutputFileMapping, set activateOutputFileMapping to false.

...