Currently MjResolve is hardly testable God class that does the following:
- Serves as an entry point for Maven.
- Handles logic with resolving dependencies
Moreover, logic in the MjResolve requires MavenPlugin in order to download and resolve dependencies. Thus it makes it hard to move internals of MjResolve to a separate class.
It would be nice to decouple the logic in MjResolve on two separate classes:
MjResolve - a thin maven endpoint for using resolving logic in a maven project.
Resolve - a core resolving logic.
Also, it's important to find out if it's possible to remove the dependency of Resolve on MavenProject. Most probably, without it, refactoring won't make any sense.
Currently
MjResolveis hardly testable God class that does the following:Moreover, logic in the
MjResolverequiresMavenPluginin order to download and resolve dependencies. Thus it makes it hard to move internals ofMjResolveto a separate class.It would be nice to decouple the logic in
MjResolveon two separate classes:MjResolve- a thin maven endpoint for using resolving logic in a maven project.Resolve- a core resolving logic.Also, it's important to find out if it's possible to remove the dependency of
ResolveonMavenProject. Most probably, without it, refactoring won't make any sense.