Like most people I have multiple projects going. Some of them use similar external libraries (e.g. libgdx, guava, etc) and some projects are common code intended to be used as resources for other projects. Currently, I simply try to store my libraries under a common root directory. There are a number of things I don’t like about this set up:
- When I download libraries, I have to manually set up consistent directories to store them in.
- Every time I create a new project, I have to navigate up and down the repository directory hierarchy adding the jars I need and also attach the javadoc, source, and natives.
- Exporting my own common libraries into my directory structure seems overly cumbersome
What I would like is a simple system that:
- Allows me to add a library to my local laptop my specifying a descriptor and have it create the appropriate directories and copy the file(s) over. For instance something like:
add {
library-name: libGDX,
version:0.9.9,
source-dir: c:\users\actual\downloads\
file:libgdx.9.9.jar,
source:libgdx-source.jar,
javadoc:libgdx-javadocs.jar
}
-
IDE integration: Allow me to select libraries from a flat list of projects in the repository and import them. It would also automatically find and attach javadoc/sources/natives as appropriate.
-
Simplifies the exporting of libraries that I create by automatically adding them to the correct place in the repository, and including the javadoc/source attachments.
I have a feeling that what I am looking for already exists. I looked at Maven and Apache Ivy, but both seem intended to be used as entire build systems whereas I am looking for something much simpler. Maybe I am just not understanding them properly. Since I am a solo developer, I also do not need to run repository servers, etc. and I am fine with having to first download libraries to my machine.
Creating a simple repository API to add, remove, and query libraries doesn’t seem like it would be too hard but the IDE integration would be trickier. I currently use intellij, but am also comfortable with eclipse and netbeans.
Does anyone have any suggestions or thoughts?
(EDIT: Removed a bunch of white space at the end)