protected Collection < Artifact > getAllDependencies ( ) throws Exception { List < Artifact > artifacts = new ArrayList < Artifact > ( ) ; for ( Iterator < ? > dependencies = project . getDependencies ( ) . iterator ( ) ; dependencies . hasNext ( ) ; ) { Dependency dependency = ( Dependency ) dependencies . next ( ) ; String groupId = dependency . getGroupId ( ) ; String artifactId = dependency . getArtifactId ( ) ; VersionRange versionRange ; try { versionRange = VersionRange . createFromVersionSpec ( dependency . getVersion ( ) ) ; } catch ( InvalidVersionSpecificationException e ) { throw new MojoExecutionException ( "unable to parse version" , e ) ; } String type = dependency . getType ( ) ; if ( type == null ) { type = "jar" ; } String classifier = dependency . getClassifier ( ) ; boolean optional = dependency . isOptional ( ) ; String scope = dependency . getScope ( ) ; if ( scope == null ) { scope = Artifact . SCOPE_COMPILE ; } Artifact art = this . artifactFactory . createDependencyArtifact ( groupId , artifactId , versionRange , type , classifier , scope , null , optional ) ; if ( scope . equalsIgnoreCase ( Artifact . SCOPE_SYSTEM ) ) { art . setFile ( new File ( dependency . getSystemPath ( ) ) ) ; } List < String > exclusions = new ArrayList < String > ( ) ; for ( Iterator < ? > j = dependency . getExclusions ( ) . iterator ( ) ; j . hasNext ( ) ; ) { Exclusion e = ( Exclusion ) j . next ( ) ; exclusions . add ( e . getGroupId ( ) + ":" + e . getArtifactId ( ) ) ; } ArtifactFilter newFilter = new ExcludesArtifactFilter ( exclusions ) ; art . setDependencyFilter ( newFilter ) ; artifacts . add ( art ) ; } return artifacts ; }
generic method to retrieve all the transitive dependencies