Bug#809736: maven-debian-helper: Does not recognize interval dependencies like junit [4.8, )

Erich Schubert erich at debian.org
Sun Jan 3 15:59:08 UTC 2016


Hello,
The substitutions work fine, but it would be nicer if it would
recognize that "[4.8,)" can be satisfied without substitution.

Right now, I have e.g.:
             <dependency>
                 <groupId>net.sf.trove4j</groupId>
                 <artifactId>trove4j</artifactId>
-                <version>[3.0.3,)</version>
+                <version>3.0.3</version>
             </dependency>
because maven-helper does not understand that [3.0.3,) accepts 3.0.3
(which is in Debian).
Of course I could "solve" this by removing the brackets in
substitution, but it should not be necessary in the first place.

The current substitution mechanism is a pain to use in general. :-(
For example, I currently have:

org.apache.maven.plugins maven-compiler-plugin * s/.*/3.2/ * *

Because 3.2 is the only version available in Debian. But as far as I
can tell, I have to hard-code this (the plugin does not ship a
"debian" meta-version). Which means, I get FTBFS whenever any plugin
is updated in Debian!

Not using maven-debian-helper, but I have not yet found a way to make
this work with maven-debian-helper either:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808856
is simply a consequence of the maven-source-plugin package update on
December 9th.

The substitution rule:
org.apache.maven.plugins maven-source-plugin * s/.*/2.4/ * *
is prone to the same problem. Now I'm not only using one plugin, but a
dozen. Whenever any of these is updated in Debian, I would have to
reupload the packages... there should be a "s/.*/ANY/" substitution.

Unfortunately, it appears that Maven itself supports above interval
versions only for dependencies, not for plugins. :-(
I tried substituting 's/.*/[2,)/' to only depend on the major version
of the plugin, but this does not appear to be allowed by Maven.
I assume that 's/.*/debian/' would work, if all the Maven plugins are
re-uploaded to include a "debian" version.

Best regards,
Erich

On Sun, Jan 3, 2016 at 4:31 PM, Emmanuel Bourg <ebourg at apache.org> wrote:
> Le 3/01/2016 15:51, Erich Schubert a écrit :
>
>> Maven 3 allows specifying minimum and maximum version dependencies.
>> For example, it is possible to specify a junit dependency "[4.8,)" as
>> "4.8 and later".
>
> Hi Erich,
>
> What substitution rule did you use for junit in debian/maven.rules? I
> suspect that the usual version rule s/4\..*/4.x/ doesn't work because
> the version starts with a bracket [ and not 4. Could you try s/.*/4.x/
> and see if it works?
>
> Emmanuel Bourg
>



More information about the pkg-java-maintainers mailing list