It is a version range.

The [ and ] brackets indicate inclusive end-points, while ( and ) are
exclusive end points, so

[2.3.19 means >=2.3.19
2.4) means < 2.4

However, due to how versions are compared, there can be strange versions
that creep into the range.

My recommendation is to add an exclusion on that library to your pom and
add back in a specific version in order to ensure a reproducible build, e.g.

if your <dependency> is currently:

  <dependency>
    <groupId>com.foo.bar</groupId>
    <artifactId>manchu</artifactId>
    <version>1.3.4</version>
  </dependency>

and the com.foo.bar:manchu:1.3.4 pom is the one containing the version
range, I would change *your* reference to:

  <dependency>
    <groupId>com.foo.bar</groupId>
    <artifactId>manchu</artifactId>
    <version>1.3.4</version>
    <exclusions>
      <exclusion>
        <!-- excluding transitive version range to gain stable build -->
        <groupId>org.something.else</groupId>
        <artifactId>some-dep</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <!-- adding back transitive dependency from com.foo.bar:manchu with
pinned version -->
    <groupId>org.something.else</groupId>
    <artifactId>some-dep</artifactId>
    <version>2.3.21</version>
  </dependency>

Hope that helps


On 5 February 2013 12:57, Alberto Ivo <alberto...@gmail.com> wrote:

> Hello,
>
> I saw this version in a lib I want to put in my project and did'nt
> understand what does that mean and didn't find in a maven tutorial.. could
> anyone explain, please?
>
> <dependency>
>                                 ...
> <!-- Latest 2.3.x (not 2.4.x), at least 2.3.19 -->
> * <version>[2.3.19,2.4)</version>*
> </dependency>
>

Reply via email to