On Thu, Apr 3, 2008 at 8:49 AM, Adrian Sandor <[EMAIL PROTECTED]> wrote:
> Hi, I'd like to ask about 2 problems I encountered in the process of > building an Ivy repository: > > 1. Is it possible to define an artifact to belong to the "intersection" of > 2 configurations? > Generally, in my modules I have at least 2 configurations: compile and > devel; compile is the minimum required to get the code to compile, and devel > extends compile and is supposed to include sources and javadocs. > In slf4j for example, I have several jar artifacts: slf4j-api, > slf4j-jdk14, slf4j-log4j12 etc. So I defined some more configurations, such > as jdk and log4j, extending compile. > Now, for each jar artifact I also have a source artifact. But I only want > the sources to be accessible in the devel configuration. So for example, > slf4j-log4j12 sources should belong to the intersection of the devel and > log4j configurations. > Is there a way to define that in ivy? So far, the only solution I found is > to define yet another configuration for each such case, e.g. devel-log4j > extends log4j, and then that doesn't extends devel, so I have to write > mappings like devel->devel,devel-log4j > This is not just about source artifacts; as Archie mentioned in a previous > email, each module may be configured along several "dimensions", and if that > leads to exponential growth in the number of configurations (that need to be > defined explicitly), then it can very quickly get out of hand. This is something that has already been discussed and requested before, but we never agreed on a solution. The problem is not easy, because configurations in Ivy are resolved independently, and can be used in the retrieve pattern. So, I think it would not fit in Ivy philosophy to have a different result for the configuration "devel" or "log4j" depending on which set of configurations you asked to be resolved. Therefore I think we need a different mechanism to handle this use case. The question is, what mechanism can we introduce, and how would it behave? > > > 2. Can we have a way to define the source (or javadoc, or whatever) > artifact(s) associated with a jar artifact? > Currently, the convention seems to be to have artifacts with the same name > and different type. E.g. artifact name="slf4j-api" type="source" associates > with artifact name="slf4j-api" type="jar". > But what if, for example, I have the source for all slf4j artifacts in > slf4j-src.zip? It would be nice to have a way to define that as the same > source artifact for all the jar artifacts. Same for javadocs. Maybe we should introduce a relationship between artifacts which would let us define the sources and javadocs. But there's always the option to repackage your sources to match the current convention, so I don't see this as a big issue. Xavier > > > What do you think? > > Adrian > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Xavier Hanin - Independent Java Consultant http://xhab.blogspot.com/ http://ant.apache.org/ivy/ http://www.xoocode.org/