title: Detecting incompatible dependencies in Maven?
body: <p>Assume you have set of web apps that use various versions of a common library like Spring. I have a business logic library that also uses this common library. So far no problem, but along the way a version of the common library changed an abstract class definition and broke the business logic library.</p>
  
  <p>So I end up with a compatible version table that looks like this...</p>
  
  <pre><code>business-lib-version | common-lib-version
           1.0         |        1.0
           1.1         |        2.0 
  </code></pre>
  
  <p>I don't want the business lib version to drive the common lib version in the consuming application. Rather I would like to pick the correct version of the business lib based on the common lib. I'm pretty sure that's not possible so I move on to the main question.</p>
  
  <p>Is there an elegant way to detect version incompatibilities? Ideally I would like a build time solution, otherwise an early run-time solution would be ok. </p>
  
  <p>I've tried using version ranges in Maven but this has caused us many problems due to how Maven sorts versions in non-standard version formats and we also had various issues in resolving ranges correctly at build time.</p>