Limitations

Though Deputy has in principal been designed with general applicability in mind it has certain limitations which might hinder you to use it in your project environment.

Please check if any of the following limitations apply to you:

  • Deputy has been written for Maven 1.x which lacks features comparable to what Deputy does. This might change significantly with the advent of Maven 2. Maven 2 will have built-in features for transitive dependencies which will make Deputy probably less useful or even superfluous for you.
  • Deputy can only handle file system repositories. Access to repositories through HTTP or other protocols is not supported yet.
  • The repository browser only lists files which have a POM file in the repository. If Deputy encounters a project during the dependency recursion which does not have a POM file in any of the configured repositories it can still handle it but it must assume that this project does not have further dependencies of its own.
  • Deputy ignores dependencies inherited from parent projects (linked by the extends element).
  • Deputy works best if all project versions follow the pattern (SNAPSHOT | targetVersion-SNAPSHOT | major.minor.micro). It can also handle other version syntaxes but it has not been tested thoroughly with all possible ones. Here's an example of how Deputy orders version labels descendingly: SNAPSHOT, 20.0.1, 3.0, 3.0-SNAPSHOT, 2.0.1, 1.2.1, 1.2.patch, 1.2, 1.1.1, 1.1.1, 1.0.10, 1.0.10beta, 1.0.1.1, 1.0.1, 1.0.1, 1.0.1beta.dev, 1.0.1beta, 1.0.1alpha, 1.0, 1.0beta9, 1.0beta8.dev, 1.0_alpha, 1, 0.1, 0.
  • Deputy might fail if a POM file does not define its groupId, artifactId and currentVersion or if it only inherits any of those from a parent project.
  • Deputy might fail if you have two projects with the same artifactId but with different groupIds. In fact, Deputy assumes that the artifactId of a project is unique accross groups.
  • Deputy does its best to preserve properties nested into dependency elements in a project.xml. To do so it keeps them for each artifact even if the version of the artifact changes in the Deputy session. Properties will get lost, however, if a dependency falls out of the graph for some reason and later, after a change of rules, re-appears.

If you have suggestions to overcome any of the limitations listed above, please contact the author.