def dependencies(scopes = SCOPES_WE_USE)
@depends_for_scopes ||= {}
unless depends = @depends_for_scopes[scopes]
declared = project["dependencies"].first["dependency"] rescue nil
depends = (declared || []).reject { |dep| value_of(dep["optional"]) =~ /true/ }.
map { |dep|
spec = pom_to_hash(dep, properties)
apply = managed(spec)
spec = apply.merge(spec) if apply
if scopes.include?(spec[:scope])
spec.delete(:scope)
exclusions = dep["exclusions"]["exclusion"] rescue nil
transitive_deps = POM.load(spec).dependencies(SCOPES_TRANSITIVE)
transitive_deps = transitive_deps.reject{|dep|
exclusions.find {|ex| dep.index("#{dep['groupdId'].first}:#{dep['artifactId'].first}:") == 0}
} if exclusions
[Artifact.to_spec(spec)] + transitive_deps
end
}.flatten.compact
@depends_for_scopes[scopes] = depends
end
depends
end