Library types and relative paths

Hello all-

I do follow EAP, and this newsgroup, but I still suffer from a little
confusion about Aurora's new library architecture. I was hoping someone
could clear up a couple of points for me-

First, there seem to be two types of libraries now- Global libraries and
Project libraries. My understanding is that the Global libraries
definitions are stored in the IDEA config dir, and Project libraries
definitions are stored in the .ipr file. Is this correct?

Second, I understand that Project libraries are referenced in the .ipr
file by relative paths. This seems an obviously good idea. However, is
it also possible to have Global libraries referenced by relative path?
If not, I really think this needs to be offered. A simple use-case for
relative path Global libraries is when you have two different branches
of product checked out into two different directories. Consider an
application library who's source lives in the branch, and needs to be
built before other project in the branch can be built. For Branch-A of
the product, the library MyApplicationLibrary needs to be found relative
to the local directory where you have Branch-A checked out. Likewise,
for Branch-B. In other words, Branch-A and Branch-B need local notions
of the location of MyApplicationLibrary. I realize this can be
accomplished with Project libraries, but this means that I have to
redefine a Project library for MyApplicationLibrary in every project
that uses it! Have I missed some obvious solution (wouldn't surprise me
at all :) )?

Regards,

Danny

1 comment
Comment actions Permalink


Don't know if this helps you, but I've always used "versioned" libraries in
a single lib dir: both the jars and the lib include the version:
concurrent-1.3.0.jar/concurrent-1.3.0 lib, concurrent-1.3.1
jar/concurrent-1.3.1 lib etc.

The lib dir is fixed, there are no problems if projects use different lib
versions, and this has the advantage of always knowing at a glance what
lib/jar version the project is using.



0

Please sign in to leave a comment.