I'm using 2.0.10 in this instance.
I am breaking down my monolithic gigantic build into sub-components, so that I
can build client separate from server, for example.
For SNAPSHOTs this is working (well, actually, it isn't, but that's another
story :) ) but for RELEASE builds, I'm getting this:
Couldn't find a version in [7.11.093, 7.11.094] to match range [7.11,7.12)
So I have a parent pom defining my "version-range" to be [7.11,7.12) for this
case (this is version 7.11, so I want the latest 7.11 build only.)
If 7.11.093 is considered newer than 7.11 (according to the docs where "any
modifier is considered "newer" than the base) then why doesn't this work?
Note that I changed it to be [7.11.000,7.12.000) and it worked fine, but that
seems like it shouldn't be necessary somehow: in that case if you ever released
1.0 and then had to do an emergency patch 1.0.1 (not 1.1, because 1.1 is being
developed for future stuff: 1.0.1 is just an emergency patch) then it wouldn't
get picked up by the maven version range properly :(
Similarly, the maven-dependency-plugin doesn't seem to support ranges specified
in this way. If you put a <version> tag in the dependency plugin then it
doesn't work with ranges, and if you put a <dependency> section in your pom
(and remove the <version> tag from the dependency-plugin part of the build)
then it puts a "null" in for the version of your artifact. I'm getting around
this by using an assembly to extract my dependency instead of the
dependency-plugin, but that just seems silly:
why can't maven handle its own version ranges????
Dana Lacoste
Examples:
Sample Range that didn't find "7.11.093" :
property defined: RELEASE_VERSION_RANGE as '[7.11,712)'
Sample Range that DID find "7.11.093" :
property defined: RELEASE_VERSION_RANGE as '[7.11.000,712.000)'
pom dependency section for above:
<dependency>
<groupId>package.server</groupId>
<artifactId>server-distribution</artifactId>
<version>${RELEASE_VERSION_RANGE}</version>
</dependency>
Sample Maven dependency-plugin section that didn't seem to work with above in
any way shape or form:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>UnpackServer</id>
<phase>process-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>package.server</groupId>
<artifactId>server-distribution</artifactId>
<classifier>bin</classifier>
<!-- <version>${RELEASE_VERSION_RANGE} </version> -->
<type>zip</type>
</artifactItem>
</artifactItems>
<outputDirectory>
${project.build.directory}/server/
</outputDirectory>
</configuration>
</execution>
</plugin>