Bacala is an experimental package dependency manager for Scala projects.
The objective of this project is:
- Use SAT solvers as the core algorithm
- Provide well-defined API and command line interface
To resolve a POM file:
./maven data/pom/github-api.xml
To resolve an Ivy file
./ivy data/ivy/parseq.xml
sbt test
- support POM configuration file
- support different version formats(including unstandard)
- support version ranges
- support scopes in POM file
- support path properties and variable properties in version constraint
- support reading version constraint from parent POM file
- inherit dependencies from parent POM file
- support aggregating dependencies from multiple mudules
- support chaining multiple repositories
- support excludes in POM
- support SNAPSHOT versioning
- resolve dependency via SAT solver
- find an assignment or answer impossible
- find the minimal conflict set
- find the optimal solution according to weighted value
- support Ivy configuration file
- support configuration
- support excludes
- support artifacts
- support transitive
- support dynamic version constraints
- support force
- support conflicts
- support overrides
- support download resources via Futures in parallel