ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sam Berlin <sber...@gmail.com>
Subject Ivy Migration Questions
Date Mon, 09 Mar 2009 19:13:33 GMT
Hi Folks,

First off -- thanks very much for Ivy.  It's looking to be great.  I
just have a few questions (that I couldn't find answers for in the FAQ
or Google).  My apologies if these are already answered.

We're looking to convert a very ugly set of ant scripts and a neutered
maven setup to a polished Ivy build.  Our setup looks something like:

  /root/components/<component>

Each component is setup in familiar maven style:
  <component>/src/main/java
  <component>/src/main/resources
  <component>/src/tests/java
  <component>/src/tests/resources
  <component>/build/classes
  <component>/build/tests

Each component has dependencies on some other components plus other
jars (the other jars can either be pulled from a maven repo or local
filesystem).

Right now, the components aren't versioned.  There's no real plans for
versioning them, either -- the component-layout exists solely to help
reduce ever-growing dependencies on arbitrary classes & packages.

I would like to be able to say "ant compile" in an arbitrary component
and have that component figure out its dependencies, build them and
build itself.  The Ivy-way that I can find to do this is to have each
dependency publish a "local" jar and have Ivy resolve that.  This
works, but is it really the only way?  Is it possible to tell Ivy, "I
just want to depend on the classes & resources as compiled locally,
not on a published jar".  One possible approach I have thought of,
which may be a complete and utter hack, is to use ivy:buildlist to get
the dependencies in a classpath form of "<dependency>/src/main/java"
and "<dependency>/src/main/resources".

Is this an issue other people have come across?  The main issue, here,
is I don't want to force a publish just to use a dependency.  If this
is required, it seems like all build.xml's will require heavy use of
buildlist & subant, and each will need separate targets for "entry
point" and "being called because of subant", where "entry point"
gathers the buildlist and calls the secondary target (so that when a
compile is called from subant, it won't force another buildlist to be
built).

Sorry for the long-winded question -- I hope it makes sense!  Please
let me know if I'm thinking about Ivy in the wrong way, or if you have
any advice.

Thanks much,
 Sam

Mime
View raw message