Class: LicenseFinder::Maven

Inherits:
PackageManager show all
Defined in:
lib/license_finder/package_managers/maven.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PackageManager

#active?, #capture, command_exists?, current_packages, #current_packages_with_relations, #initialize, installed?, package_managers

Constructor Details

This class inherits a constructor from LicenseFinder::PackageManager

Class Method Details

.package_management_commandObject



23
24
25
# File 'lib/license_finder/package_managers/maven.rb', line 23

def self.package_management_command
  "mvn"
end

Instance Method Details

#current_packagesObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/license_finder/package_managers/maven.rb', line 5

def current_packages
  command = 'mvn license:download-licenses'
  output, success = Dir.chdir(project_path) { capture(command) }
  raise "Command '#{command}' failed to execute: #{output}" unless success

  xml = license_report.read

  options = {
    'GroupTags' => { 'licenses' => 'license', 'dependencies' => 'dependency' },
    'ForceArray' => ['license', 'dependency']
  }
  dependencies = XmlSimple.xml_in(xml, options)["dependencies"]

  dependencies.map do |dep|
    MavenPackage.new(dep, logger: logger)
  end
end