code: private void addExtraPluginDependenciesToClasspath(Set<URL> path) throws MojoExecutionException {
          if (extraPluginDependencyArtifactId == null && extendedPluginDependencyArtifactId == null) {
              return;
          }
  
          try {
              Set<Artifact> artifacts = new HashSet<Artifact>(this.pluginDependencies);
              for (Artifact artifact : artifacts) {
                  // must
                  if (artifact.getArtifactId().equals(extraPluginDependencyArtifactId)
                      || artifact.getArtifactId().equals(extendedPluginDependencyArtifactId)) {
                      getLog().debug("Adding extra plugin dependency artifact: " + artifact.getArtifactId()
                          + " to classpath");
                      path.add(artifact.getFile().toURI().toURL());
  
                      // add the transient dependencies of this artifact
                      Set<Artifact> deps = resolveExecutableDependencies(artifact, true);
                      if (deps != null) {
                          for (Artifact dep : deps) {
                              getLog().debug("Adding extra plugin dependency artifact: " + dep.getArtifactId()
                                  + " to classpath");
                              path.add(dep.getFile().toURI().toURL());
                          }
                      }
                  }
              }
          } catch (MalformedURLException e) {
              throw new MojoExecutionException("Error during setting up classpath", e);
          }
      }
docs: Add any relevant project dependencies to the classpath. Indirectly takes
  includePluginDependencies and ExecutableDependency into consideration.
  
  @param path classpath of {@link java.net.URL} objects
  @throws MojoExecutionException