I'm trying to use maven poms to describe the dependencies of a
cross-platform java application.  I'm calling it cross platform because
some of the dependencies use jni. I then want to build an assembly of
this application that puts the platform specific dependencies in
different directories of the assembly.  For example directories: linux,
osx, windows.

I have no problem writing a plugin to do this, but I can't see how to do
it.  The maven2 approach for dealing with platform specific dependencies
is to use profiles which have os specific activations.  But this
platform information about the dependency does not appear easy to access
during the assembly.

First, to build a complete assembly I need trick maven into thinking the
currently platform is actually every platform.  I can't see how to do
this without using a naming convention for the profile ids. If all
windows profiles have the same id, then the assembly could be done by
activating all the platform specific profiles.  But that is not an ideal
solution, if I want to reference external cross platform libraries whose
poms I don't have control over.

If I can get past that first part then to separate the dependencies into
folders, I need to figure out which profile each dependency came from.
That doesn't seem easy.  The only way I can see to do is to traverse the
transitive and inherited pom tree and track down the pom for each
dependency, and figure out the profile that referenced it.

Is there another way to do this?

I could use a classifier naming convention, but then I'd have the same
problem when working with external cross platform libraries.

I'm really looking for a general way to approach this, that can follow
the best practices of maven, and also support the various maven jni
solutions.

Thanks in advance for any ideas,
Scott Cytacki


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to