> -----Original Message-----
> From: Mitch Gitman [mailto:mgit...@gmail.com]
> Sent: 19 August 2010 21:44
> To: ivy-user@ant.apache.org
> Subject: Re: OS specific artifacts
>
> 1) It sounds like what you "want" to do is create two
> different files in the
> same Ivy module and give them the same name, even though they are two
> different files. This doesn't make sense.
They may be OS specific but they are being delivered to me with the same name.
I've also no idea how the team providing the jar file managed to make them
different. One would expect that the jar file should have been created to load
either the dll or the so based on what platform it's being run on. Although I
have to admit my understanding of JNI libraries is still pretty limited.
> I would suggest, instead of trying to find a way to work
> around your current
> state of things, think about what makes the most sense
> conceptually. From my
> limited understanding of your situation, this means either of
> two choices:
> A. Create one Ivy module for the Windows deployment and
> another Ivy module
> for the Linux deployment. The two component.jar files can
> have the same name
> since they don't get deployed to the same location.
> B. Keep everything in one Ivy module and use a Windows Ivy
> conf and a Linux
> Ivy conf. In this scenario you would have to name the
> component.jar files
> something different, but they are different files. This
> choice presumes that
> you're versioning and releasing your Windows and Linux deployments in
> concert, using a single version.
>
> Forgive me for resisting your premise.
You're forgiven, I didn't ask for alternative suggestions any expect to get the
response that said "yeap your solution is the right one" ;-)
I suspect that there will be no way for IvyDE to automatically select the right
config using this approach, and not requiring the other developers to have to
manually change which conf is selected based on OS, would be better.
> 2) Instead of using a ${target.os} placeholder, control the
> choice between
> the Linux and Windows Ivy confs outside of ivy.xml. In your
> build scripts,
> the ivy:resolve would specify one conf or another. In IvyDE, you would
> choose one conf or another or both. This brings you back to
> the problem of
> conflicting names.
This gives me the result that the developers will have to modify the eclipse
project settings any time they switch OS.
Ideally this is what I want to avoid. I want that whenever the developer opens
eclipse, if he's on linux, IvyDE retrieves the linux dependencies, and if he's
on windows, IvyDE retrieves the windows dependencies. If it's being run via an
Ant script, I have a lot more flexibility at my finger tips in retrieveing
configurations.
Thinking on it a little more, I suspect that a method for handling the jar file
will fall out from a solution that allows IvyDE to automatically retreive the
correct deps for the current platform.
--
Regards,
Darragh Bailey