[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Building maven packages

Hi chaps and chapesses,

I am trying to package javalution:
code at:

I am very vague about java in general (I don't use the language), but
have sucessfully packaged stuff which uses makefiles and ant, using

However maven is new to me, and that seems to be what is in use here.
(The source has pom.xml files)

Thre is also a load of stuff about osgi in the .pom files, which seems
to be some packaging format for java (different from jars). Do I care
about this? Can I easily just nobble the making of osgi packages and
thus simplafy my dependency tree?

I have read the Debian java policy
and https://wiki.debian.org/Java/Packaging
and https://wiki.debian.org/Java/MavenBuilder
and note that we have various maven packages like maven-debian-helper and maven-repo-helper
But I'm really not sure what the recommended way to build such a thing is.

The maven helper tools seem to be about producing maven-friendly
output. I don't think I need that. I just need the jar creating. Am I
better off just writing a makefile or ant-based thing (which I would
vaguely understand), or trying to use the upstream maven build files?
The wiki talks of using maven-ant-helper to 'fallback the build to
ant', but I'm not sure how or if that's a good plan?

I've tried using the poms, by using mh_make to make some rules that might be about right 
(which seem to use maven via cdbs), but really don't understand what I'm doing.
Having hacked about a bit it currenty fails with:
The POM for org.codehaus.mojo:native-maven-plugin:jar:1.0-alpha-7 is missing, no 
dependency information available

This is listed in the pom.xml file under "Native Plugin Default Configuration (EXE)"
with talk about 'adding support for Visual studio 2010'. I don't think I care about 
any of that, so I added 
org.codehaus.mojo native-maven-plugin * * * *
to debian/maven.ignoreRules
(is that right, or is this in fact needed for building the cpp .so part?)
If it is needed how do I get it? There doesn't seem to be a packaged maven/java 
version of it.

Next I get complaints about felix "Unresolveable build extension: Plugin org.apache.felix:maven-bundle-plugin:2.3.7 or one of its dependencies could not be resolved".
This seems to be some framework for osgi packaging? Does that mean I don't need it?

Adding that to the debian/maven.ignoreRules files gets me to a point
where I seem to be missing the plugin
cd . && /usr/lib/jvm/default-java/bin/java -noverify -cp /usr/share/maven/boot/plexus-classworlds-2.x.jar:/usr/lib/jvm/default-java/lib/tools.jar  -Dclassworlds.conf=/etc/maven/m2-debian.conf -Dmaven.home=/usr/share/maven -Dmaven.multiModuleProjectDirectory=/home/wookey/packages/jscience/javolution/javolution-6.0.0 org.codehaus.plexus.classworlds.launcher.Launcher -s/etc/maven/settings-debian.xml -Dmaven.repo.local=/home/wookey/packages/jscience/javolution/javolution-6.0.0/debian/maven-repo  package -DskipTests
[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Unknown packaging: bundle @ line 7, column 13
[ERROR] Unknown packaging: so @ line 7, column 13

which I think nmeans that the c++ part of the project is not getting built?

My current efforts are at:
with orig tarball (repackaged to get rid of boost libraries) 

If anyone can provide some clues to point me in the right direction that would be great

Not knowing the terminology (osgi, bundle, mojo, etc) really doesn't
help, and maybe there are some docs I've missed on how
maven-debian-helper actually works. (It's patched my poms and made
various debian/maven.* files, which all looks quite clever but I don't
know if it's right or what other controls I have).

Principal hats:  Linaro, Debian, Wookware, ARM

Attachment: signature.asc
Description: Digital signature

Reply to: