Currently all dependencies are marked as provided although cp2fm is never executed in some sort of container but either used standalone or used as library e.g. from Maven plugins. For the latter a scope of compile is much better, as that way dependencies are transitive. Otherwise every consumer has to redefine all used dependencies (very error prone). Compare with https://github.com/adobe/aemanalyser-maven-plugin/issues/58.