Question

Is it stupid to fill every rev attribute for each dependencies with + and change the conflict manager to compatible-cm ?

I have no constraint on the dependencies so what is the interest to set a specific version ?

Was it helpful?

Solution

The point of explicitly specifying your dependencies versions is to ensure that your build is repeatable. It defends you against:

  • Deprecated methods. Eventually a library just stops working unless you pay attention to your compiler warnings.
  • Functionality may change over time. Unless your code has good functional tests in place, how can you be certain the code still works?

But.... it is inconvenient to keep versions up to date in the ivy file.

The compromise I find is to regularly release my code into a repository. The ivy deliver task can be used to resolve all dependencies and effective "freeze" my revisions at a point in time. So my build uses dynamic revisions like "latest.integration" and "latest.release", but my released code contains the exact revisions in it's metadata file (pom.xml or ivy.xml dependent on which repository management software you use)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top