class LicenseAuto::Maven
Constants
- DEPENDENCY_PATTERN
- LANGUAGE
Public Class Methods
check_cli()
click to toggle source
# File lib/license_auto/package_manager/maven.rb, line 122 def self.check_cli cmd = 'mvn -v' stdout_str, stderr_str, _status = Open3.capture3(cmd) if stdout_str.include?('Apache Maven 3') true else LicenseAuto.logger.error("stdout_str: #{stdout_str}, stderr_str: #{stderr_str}") false end end
new(path)
click to toggle source
Calls superclass method
LicenseAuto::PackageManager::new
# File lib/license_auto/package_manager/maven.rb, line 16 def initialize(path) super(path) end
Public Instance Methods
collect_dependencies()
click to toggle source
@return example
> Array: [{:name=>“junit:junit”, :version=>“4.8”, :remote=>nil}]¶ ↑
# File lib/license_auto/package_manager/maven.rb, line 44 def collect_dependencies deps = if resolve_dependencies list_dependencies.map {|dep| group, name, type, version, scope = dep.split(':') { name: [group, name].join(':'), version: version, remote: nil } } else [] end LicenseAuto.logger.debug(deps) deps end
dependency_file_pattern()
click to toggle source
# File lib/license_auto/package_manager/maven.rb, line 20 def dependency_file_pattern /#{@path}\/pom\.xml$/i end
list_dependencies()
click to toggle source
Command output sample:
- INFO
- INFO
- INFO
-
Building GitHub
Maven
Plugin Example 0.1-SNAPSHOT - INFO
- INFO
- INFO
-
— maven-dependency-plugin:2.8:list (default-cli) @ github-maven-example —
- INFO
- INFO
-
The following files have been resolved:
- INFO
-
junit:junit:jar:4.8:test
- INFO
- INFO
- INFO
-
BUILD SUCCESS
- INFO
- INFO
-
Total time: 1.819 s
- INFO
-
Finished at: 2016-04-18T15:26:58+08:00
- INFO
-
Final Memory: 14M/155M
- INFO
@return sample:
Set.new(["junit:junit:jar:4.8:test"])
# File lib/license_auto/package_manager/maven.rb, line 98 def list_dependencies if resolve_dependencies deps = Set.new Dir.chdir(@path) do cmd = 'mvn dependency:list' out, err, _st = Open3.capture3(cmd) # LicenseAuto.logger.debug("#{out}") if out.include?("The following files have been resolved:") out.split("\n").each {|line| matched = DEPENDENCY_PATTERN.match(line) # LicenseAuto.logger.debug("#{line}, matched: #{matched}") if matched group_name_version = line.gsub!(/\[INFO\]/,'').strip! deps.add(group_name_version) end } else LicenseAuto.logger.error("#{err}") end end deps end end
parse_dependencies()
click to toggle source
# File lib/license_auto/package_manager/maven.rb, line 24 def parse_dependencies build_files = dependency_file_path_names if build_files.empty? LicenseAuto.logger.info("#{LANGUAGE}: #{dependency_file_pattern} file not exist") [] else build_files.map {|dep_file| LicenseAuto.logger.debug(dep_file) { dep_file: dep_file, deps: collect_dependencies } } end # LicenseAuto.logger.debug(JSON.pretty_generate(deps)) end
resolve_dependencies()
click to toggle source
# File lib/license_auto/package_manager/maven.rb, line 62 def resolve_dependencies bool = false Dir.chdir(@path) do cmd = 'mvn dependency:resolve' stdout_str, stderr_str, _status = Open3.capture3(cmd) if stdout_str.length > 0 # LicenseAuto.logger.debug("stdout_str: #{stdout_str}") if stdout_str.include?("[INFO] BUILD SUCCESS") bool = true end end end bool end