ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Jonathan_Ou...@McAfee.com>
Subject RE: ivy:install
Date Mon, 05 Aug 2013 11:43:40 GMT
The mapped attribute is explained here:
http://ant.apache.org/ivy/history/latest-milestone/ivyfile/dependency-conf.html
It allows you to express dependency mappings without the need to use the "from this ->
to this" notation.

I must admit that I am very surprised to hear that by convention the build configuration should
be public.  The Ivy documentation for configurations:
http://ant.apache.org/ivy/history/latest-milestone/ivyfile/conf.html
gives an example where both the core and compile configurations are private, this is analogous
to what I am doing with my build configuration.  Surely users of my module may be interested
in the jars / libs / header files that I publish and even any transitive artefacts that they
may require, but why would a user of my module be interested in the dependencies that I require
to compile the artefacts?

I am reluctant to modify and recompile our ivy.jar, this is bound to cause headaches when
we upgrade in the future.  However, reworking all our existing Ivy descriptors does not seem
to be a good option either.  I could look at the source code and potentially submit a patch
for this feature, would this be something the community would be interested in? 


Jonathan Oulds
Software Engineer / PSC - Drive Encryption

McAfee, Inc.
Direct: +44 (0)1273 669419
Web: www.mcafee.com


-----Original Message-----
From: Kirby Files [mailto:kfiles@masergy.com] 
Sent: 02 August 2013 17:33
To: ivy-user@ant.apache.org
Cc: Oulds, Jonathan
Subject: Re: ivy:install

Jonathan_Oulds@McAfee.com wrote on 08/02/2013 12:08 PM:
> So I use the build configuration to pull the libs configuration from 
> the latest version of the myorg#bar module.  This works fine for 
> building the module.  However, sometimes I want to develop my module 
> while sitting on a plane with no access to my corporate Ivy 
> repository, the solution use ivy:install to create an "offline"
> repository on my laptop before I leave the office.  However 
> ivy:install does not want to pull dependencies for the private "build" 
> configuration which means the myorg#bar module is not installed.  Is 
> there any way around this other than change all my private 
> configurations to public?

I cannot see why ivy:install should pull private dependencies, even in this case. I am not
familiar enough with the internals of the transitive resolution used by ivy:install to know
how hard it would be to hack such a knob, but it would seem counter to any expectations.

Really, the convention in both ivy and maven is that build configurations are public. You
want to declare the required dependencies for building the project. I would use private configurations
for optional tests, IvyDE-specific subsets, or perhaps various documentation-generation tasks.

BTW, what is the implication of the "mapped" attribute of the conf element? I don't see that
in the 2.3 documentation.

Thanks,
---
Kirby Files
Software Architect
Masergy Communications
kfiles@masergy.com



Mime
View raw message