Sha256: f0b7229f5e0ae8d02eeedd88812b3717c18de4db6ab763215e19c14b893ff847

Contents?: true

Size: 901 Bytes

Versions: 6

Compression:

Stored size: 901 Bytes

Contents

require "xmlsimple"

module LicenseFinder
  class Maven < PackageManager
    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

    def self.package_management_command
      "mvn"
    end

    private

    def license_report
      project_path.join('target/generated-resources/licenses.xml')
    end

    def package_path
      project_path.join('pom.xml')
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
license_finder-2.1.2 lib/license_finder/package_managers/maven.rb
license_finder-2.1.1 lib/license_finder/package_managers/maven.rb
license_finder-2.1.0 lib/license_finder/package_managers/maven.rb
license_finder-2.1.0.rc9 lib/license_finder/package_managers/maven.rb
license_finder-2.1.0.rc8 lib/license_finder/package_managers/maven.rb
license_finder-2.1.0.rc7 lib/license_finder/package_managers/maven.rb