Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Debian Java (http://www.linux-archive.org/debian-java/)
-   -   maven depends question (http://www.linux-archive.org/debian-java/698316-maven-depends-question.html)

Boris Ribalkin 08-28-2012 04:38 AM

maven depends question
 
Hi,

I have maven based package which depends on other packages with version restriction (libsqljet-java (>= 1.1.1)):

Build-Depends-Indep: libmaven-replacer-plugin-java, libcommons-cli-java, libcommons-codec-java, *

*libcommons-io-java, libcommons-lang-java, libgoogle-api-client-java, libjetty-java, *
*libjson-java, liblog4j1.2-java (>= 1.2.16), libqtjambi-snapshot, libsqljet-java (>= 1.1.1),
*libmaven-assembly-plugin-java


but when I install the package only log4j version restriction is left:
*
sudo apt-cache show libsyncloud-core-java

Package: libsyncloud-core-java
Source: syncloud-core

Priority: optional
Section: java
Installed-Size: 423
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Architecture: all

Version: 0.1-7~1~precise1
Depends: libcommons-codec-java, libcommons-io-java, libcommons-lang-java, libjetty-java, libjson-java, liblog4j1.2-java (>= 1.2.16), libsqljet-java, libqtjambi-snapshot


Could you help me?

Pacakge: bazaar.launchpad.net/~ribalkin/syncloud/syncloud-core-debian/view/ahead:/debian/control


Thanks.

--
Boris Rybalkin
ribalkin@gmail.com

Ludovic Claude 08-28-2012 10:42 PM

maven depends question
 
Hello Boris,

There are two distinct sets of constraints here:

- the build constraints, which you have manually created,

- the runtime constraints, which are created during the build and
injected as part of the ${maven:Depends} substitution variable.

An easy solution would be to replace in your control file
${maven:Depends} with the exact list of dependencies and their
constraints that you wish to have for your package.

Another solution, more useful in my opinion, is to collaborate with the
maintainers of the dependent packages. But first, you need to understand
how ${maven:Depends} is constructed:

${maven:Depends} is build from the information provided by the POM files
in your project. A list of external dependencies and their versions is
constructed, then those dependencies are matched with the information
stored in /usr/share/maven-repo and transformed into a list of packages.
When a package signals that its Debian version (the major part of the
version) matches its Maven version, then a constraint is added.

For example, liblog4j-java has the Debian version 1.2.16-3, and in its
POM the Maven version is 1.2.16. If you look at the packaging for
liblog4j-java, then you will see in debian/liblog4j-java.poms this line:

pom.xml --has-package-version --java-lib --usj-name=log4j-1.2
--artifact=dist/lib/log4j-*.jar

Notice --has-package-version. This option tells maven-repo-helper that
the Maven version is linked to the Debian version of the containing package.

So to get back to your problem, you need to ask all dependent project
where you wish to see a version constraint to add the
--has-package-version option in their .poms file and to release a new
version of their package.

Ludovic

On 08/28/2012 06:38 AM, Boris Ribalkin wrote:
> Hi,
>
> I have maven based package which depends on other packages with version
> restriction (libsqljet-java (>= 1.1.1)):
>
> Build-Depends-Indep: libmaven-replacer-plugin-java, libcommons-cli-java,
> libcommons-codec-java,
> libcommons-io-java, libcommons-lang-java, libgoogle-api-client-java,
> libjetty-java,
> libjson-java, liblog4j1.2-java (>= 1.2.16), libqtjambi-snapshot,
> *libsqljet-java (>= 1.1.1)*,
> libmaven-assembly-plugin-java
>
> but when I install the package only log4j version restriction is left:
>
> sudo apt-cache show libsyncloud-core-java
>
> Package: libsyncloud-core-java
> Source: syncloud-core
> Priority: optional
> Section: java
> Installed-Size: 423
> Maintainer: Debian Java Maintainers
> <pkg-java-maintainers@lists.alioth.debian.org
> <mailto:pkg-java-maintainers@lists.alioth.debian.org>>
> Architecture: all
> Version: 0.1-7~1~precise1
> Depends: libcommons-codec-java, libcommons-io-java,
> libcommons-lang-java, libjetty-java, libjson-java, liblog4j1.2-java (>=
> 1.2.16), *libsqljet-java*, libqtjambi-snapshot
>
> Could you help me?
>
> Pacakge:
> bazaar.launchpad.net/~ribalkin/syncloud/syncloud-core-debian/view/ahead:/debian/control
> <http://bazaar.launchpad.net/~ribalkin/syncloud/syncloud-core-debian/view/ahead:/debian/control>
>
> Thanks.
>
> --
> Boris Rybalkin
> ribalkin@gmail.com <mailto:ribalkin@gmail.com>


--
To UNSUBSCRIBE, email to debian-java-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 503D494D.1040406@laposte.net">http://lists.debian.org/503D494D.1040406@laposte.net


All times are GMT. The time now is 09:32 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.