I'm working with a variety of Java EE websites which use internal libraries we've developed. For each website, we only upgrade to new versions of our internal libraries as needed, and before committing we make sure that the site compiles fine.
What this means is that when TeamCity does a build of one of our sites, the site compiles fine, but later when the site is updated to the latest version of internal libraries, there might be a compile error.
Is there a good way to handle this?
We're not using Maven yet; would using Maven mean that our websites could automatically use the latest version of internal libraries?
What we sometimes run into is this:
- Project A depends on a library, and is currently using library version 1.0
- Project B also depends on that library. I make changes to the library so that it is now version 1.5. Project B now uses 1.5.
- Project A and project B have both been built just fine by the CI server (TeamCity)
- Working on project A again, I update to 1.5 and discover that 1.5 has breaking changes in it.
Is there a way for the CI server to discover these kinds of breaking changes?