Versions Compared

Key

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

...

  • We want to provide a single place for versions to be defined for a multi project build.

Option 1

Using the standard dependencyManagement element to specify the versions.

Possible limitations:

  • Might be that you want to use the version string somewhere else for whatever reason. You could reference the dependency but that would probably be pretty verbose.
Code Block
<project>
  ...
  <properties>
    <fooVersion>1.0</fooVersion>
    <barVersion>2.0</barVersion>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.foo</groupId>
        <artifactId>foo</artifactId>
        <version>${fooVersion}<<version>1.0</version>     
      </dependency>
     <dependency>
        <groupId>org.bar</groupId>
        <artifactId>bar</artifactId>
        <version>${barVersion}<<version>2.0</version>     
      </dependency>
    </dependencies>
  </dependencyManagement>
  ...
</project>

Option 2

This option has each version used specified in a property and that property is used in the dependencyManagement element and can be used anywhere else.

Possible limitations:

  • Any tooling made to help manage dependencies would be dealing with free form properties
Code Blocknoformat
<project>
  ...
  <properties>
    <fooVersion>1.0</fooVersion>
    <barVersion>2.0</barVersion>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.foo</groupId>
        <artifactId>foo</artifactId>
        <version>1.0<<version>${fooVersion}</version>     
      </dependency>
     <dependency>
        <groupId>org.bar</groupId>
        <artifactId>bar</artifactId>
        <version>2.0<<version>${barVersion}</version>     
      </dependency>
    </dependencies>
  </dependencyManagement>
  ...
</project>

...