Class DiffClasspathMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.dependency.AbstractDependencyMojo
org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo
org.apache.maven.plugins.dependency.fromDependencies.BuildClasspathMojo
de.iip_ecosphere.platform.tools.maven.dependencies.DiffClasspathMojo
All Implemented Interfaces:
Comparator<org.apache.maven.artifact.Artifact>, org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="diff-classpath", requiresDependencyCollection=COMPILE_PLUS_RUNTIME, requiresDependencyResolution=COMPILE_PLUS_RUNTIME, defaultPhase=GENERATE_SOURCES, threadSafe=true) public class DiffClasspathMojo extends org.apache.maven.plugins.dependency.fromDependencies.BuildClasspathMojo
Reused build-classpath Mojo to write a diffed classpath from rootCoordinates and the containing project.
Author:
Holger Eichelberger, SSE
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private org.apache.maven.artifact.handler.manager.ArtifactHandlerManager
     
    private org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver
     
    private File
     
    private String
     
    private org.apache.maven.project.ProjectBuilder
     
    private List<org.apache.maven.artifact.repository.ArtifactRepository>
     
    private org.apache.maven.plugins.dependency.utils.ResolverUtil
     
    private Set<String>
     

    Fields inherited from class org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo

    classifier, excludeArtifactIds, excludeClassifiers, excludeGroupIds, excludeScope, excludeTransitive, excludeTypes, includeArtifactIds, includeClassifiers, includeGroupIds, includeScope, includeTypes, markersDirectory, overWriteIfNewer, overWriteReleases, overWriteSnapshots, prependGroupId, type

    Fields inherited from class org.apache.maven.plugins.dependency.AbstractDependencyMojo

    session

    Fields inherited from interface org.apache.maven.plugin.Mojo

    ROLE
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    DiffClasspathMojo(org.apache.maven.execution.MavenSession session, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.project.MavenProject project, org.apache.maven.plugins.dependency.utils.ResolverUtil resolverUtil, org.apache.maven.project.ProjectBuilder projectBuilder, org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager, org.apache.maven.project.MavenProjectHelper projectHelper, org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver artifactResolver)
    Creates a mojo instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    addParentArtifacts(org.apache.maven.project.MavenProject project, Set<org.apache.maven.artifact.Artifact> artifacts)
    Adds parent artifacts.
    private org.apache.maven.project.MavenProject
    buildProjectFromArtifact(org.apache.maven.artifact.Artifact artifact)
    Creates a maven project instance from the given artifact.
    private void
    collectDependencies(org.apache.maven.artifact.Artifact artifact, Map<String,org.apache.maven.artifact.Artifact> coordMapping, Set<org.apache.maven.artifact.Artifact> artifacts)
    Collects all transitive dependencies of art with artifacts taken from coordMapping writing not so far known results to artifacts.
    private org.apache.maven.plugins.dependency.utils.DependencyStatusSets
    getClassifierTranslatedDependencies(Set<org.apache.maven.artifact.Artifact> artifacts, boolean stopOnFailure)
    Transform artifacts.
    private String
    getCoordinate(org.apache.maven.artifact.Artifact artifact)
    Returns the coordinate of artifact.
    private String
    getCoordinate(org.apache.maven.model.Dependency dependency)
    Returns the coordinate of dependency.
    protected org.apache.maven.plugins.dependency.utils.DependencyStatusSets
    getDependencySets(boolean stopOnFailure, boolean includeParents)
     
    private Set<org.apache.maven.artifact.Artifact>
    resolve(Set<org.eclipse.aether.artifact.Artifact> artifacts, boolean stopOnFailure)
    Resolves artifacts.
    void
    setOutputFile(File outputFile)
     
    void
    setPathSeparator(String thePathSeparator)
     

    Methods inherited from class org.apache.maven.plugins.dependency.fromDependencies.BuildClasspathMojo

    appendArtifactPath, attachFile, compare, doExecute, getMarkedArtifactFilter, isStripVersion, readClasspathFile, setFileSeparator, setLocalRepoProperty, setOutputProperty, setPrefix, setRegenerateFile, setStripVersion

    Methods inherited from class org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo

    filterMarkedDependencies, getDependencySets, getMarkersDirectory, getResolvedDependencies, getResolverUtil, isPrependGroupId, setMarkersDirectory, setPrependGroupId

    Methods inherited from class org.apache.maven.plugins.dependency.AbstractDependencyMojo

    execute, existsInResolvedModel, getProject, isSilent, isSkip, setSilent, setSkip

    Methods inherited from class org.apache.maven.plugin.AbstractMojo

    getLog, getPluginContext, setLog, setPluginContext

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • artifactResolver

      private org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver artifactResolver
    • projectBuilder

      private org.apache.maven.project.ProjectBuilder projectBuilder
    • outputFile

      @Parameter(property="mdep.outputFile", required=true) private File outputFile
    • pathSeparator

      @Parameter(property="mdep.pathSeparator", defaultValue="", required=true) private String pathSeparator
    • rootCoordinates

      @Parameter(property="mdep.rootCoordinates", required=true) private Set<String> rootCoordinates
    • remoteArtifactRepositories

      @Parameter(defaultValue="${project.remoteArtifactRepositories}", readonly=true, required=true) private List<org.apache.maven.artifact.repository.ArtifactRepository> remoteArtifactRepositories
    • artifactHandlerManager

      private org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager
    • resolverUtil

      private org.apache.maven.plugins.dependency.utils.ResolverUtil resolverUtil
  • Constructor Details

    • DiffClasspathMojo

      @Inject protected DiffClasspathMojo(org.apache.maven.execution.MavenSession session, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.project.MavenProject project, org.apache.maven.plugins.dependency.utils.ResolverUtil resolverUtil, org.apache.maven.project.ProjectBuilder projectBuilder, org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager, org.apache.maven.project.MavenProjectHelper projectHelper, org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver artifactResolver)
      Creates a mojo instance.
      Parameters:
      session - the maven session
      buildContext - the build context
      project - the project instance
      resolverUtil - the resolver util instance
      projectBuilder - the project builder
      artifactHandlerManager - the artifact handler manager
      projectHelper - the project helper
      artifactResolver - the artifact resolver instance
  • Method Details

    • setOutputFile

      public void setOutputFile(File outputFile)
      Overrides:
      setOutputFile in class org.apache.maven.plugins.dependency.fromDependencies.BuildClasspathMojo
    • setPathSeparator

      public void setPathSeparator(String thePathSeparator)
      Overrides:
      setPathSeparator in class org.apache.maven.plugins.dependency.fromDependencies.BuildClasspathMojo
    • getCoordinate

      private String getCoordinate(org.apache.maven.artifact.Artifact artifact)
      Returns the coordinate of artifact.
      Parameters:
      artifact - the artifact
      Returns:
      the coordinate
    • getCoordinate

      private String getCoordinate(org.apache.maven.model.Dependency dependency)
      Returns the coordinate of dependency.
      Parameters:
      dependency - the dependency
      Returns:
      the coordinate
    • collectDependencies

      private void collectDependencies(org.apache.maven.artifact.Artifact artifact, Map<String,org.apache.maven.artifact.Artifact> coordMapping, Set<org.apache.maven.artifact.Artifact> artifacts) throws org.apache.maven.plugin.MojoExecutionException
      Collects all transitive dependencies of art with artifacts taken from coordMapping writing not so far known results to artifacts. There are for sure better ways...
      Parameters:
      artifact - the artifact to resolve
      coordMapping - the coordinate-to-artifact mapping
      artifacts - the resulting artifacts containing the transitive dependencies, to be modified as a side effect
      Throws:
      org.apache.maven.plugin.MojoExecutionException - if maven projects cannot be built from artifact information
    • getDependencySets

      protected org.apache.maven.plugins.dependency.utils.DependencyStatusSets getDependencySets(boolean stopOnFailure, boolean includeParents) throws org.apache.maven.plugin.MojoExecutionException
      Overrides:
      getDependencySets in class org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getClassifierTranslatedDependencies

      private org.apache.maven.plugins.dependency.utils.DependencyStatusSets getClassifierTranslatedDependencies(Set<org.apache.maven.artifact.Artifact> artifacts, boolean stopOnFailure) throws org.apache.maven.plugin.MojoExecutionException
      Transform artifacts.
      Parameters:
      artifacts - set of artifacts Artifact
      stopOnFailure - true/false
      Returns:
      DependencyStatusSets - Bean of TreeSets that contains information on the projects dependencies
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error
    • resolve

      private Set<org.apache.maven.artifact.Artifact> resolve(Set<org.eclipse.aether.artifact.Artifact> artifacts, boolean stopOnFailure) throws org.apache.maven.plugin.MojoExecutionException
      Resolves artifacts.
      Parameters:
      artifacts - the set of artifacts
      stopOnFailure - true if we should fail with exception if an artifact couldn't be resolved false otherwise
      Returns:
      the resolved artifacts. Artifact.
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of error
    • buildProjectFromArtifact

      private org.apache.maven.project.MavenProject buildProjectFromArtifact(org.apache.maven.artifact.Artifact artifact) throws org.apache.maven.plugin.MojoExecutionException
      Creates a maven project instance from the given artifact. Taken over from AbstractDependencyMojo as not accessible.
      Parameters:
      artifact - the artifact
      Returns:
      the maven project
      Throws:
      org.apache.maven.plugin.MojoExecutionException - the project instance cannot be built
    • addParentArtifacts

      private void addParentArtifacts(org.apache.maven.project.MavenProject project, Set<org.apache.maven.artifact.Artifact> artifacts) throws org.apache.maven.plugin.MojoExecutionException
      Adds parent artifacts. Taken over from AbstractDependencyMojo as not accessible.
      Parameters:
      project - the project to take the artifacts from
      artifacts - the artifacts set to be modified
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case that artifact resolution fails