Class: Bee::Task::BeeDependencyResolver

Inherits:
BaseDependencyResolver show all
Defined in:
lib/dependency_resolver.rb

Overview

Bee dependency resolver.

Constant Summary collapse

DEFAULT_REPOSITORY =

Default repository address.

'http://repo1.maven.org/maven2'
DEFAULT_CACHE =

Default cache location.

File.expand_path('~/.java/dependencies')

Constants inherited from BaseDependencyResolver

Bee::Task::BaseDependencyResolver::DEFAULT_SCOPE

Instance Method Summary collapse

Methods inherited from BaseDependencyResolver

#classpath, #dependencies

Constructor Details

#initialize(file, scope, verbose = false) ⇒ BeeDependencyResolver

Constructor:

  • file: dependency file (should be maven.xml).

  • scope: the scope for dependencies (compile, runtime or test).

  • verbose: tells if we should be verbose.



214
215
216
217
# File 'lib/dependency_resolver.rb', line 214

def initialize(file, scope, verbose=false)
  super(file, scope, verbose)
  @cache = DEFAULT_CACHE
end

Instance Method Details

#build_path(root, dependency) ⇒ Object

Build a Maven path.

  • root: the path root (root directory for repository or cache).

  • dependency: dependency as a map.

Return: path as a string.



263
264
265
266
267
268
269
270
271
272
273
274
# File 'lib/dependency_resolver.rb', line 263

def build_path(root, dependency)
  groupid = dependency[:groupid].split('.').join('/')
  artifactid = dependency[:artifactid]
  version = dependency[:version]
  type = dependency[:type] || 'jar'
  classifier = dependency[:classifier]
  if classifier
    return "#{root}/#{groupid}/#{artifactid}/#{version}/#{artifactid}-#{version}-#{classifier}.#{type}"
  else
    return "#{root}/#{groupid}/#{artifactid}/#{version}/#{artifactid}-#{version}.#{type}"
  end        
end

#parse_dependencies(source) ⇒ Object

Extract dependencies from a file.

  • source: file source.

Return: dependencies as a list of maps with keys groupid, artifactid, version, type, optional.



223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# File 'lib/dependency_resolver.rb', line 223

def parse_dependencies(source)
  dependencies = YAML::load(source)
  new_dependencies = []
  for dependency in dependencies
    if dependency['group']
      new_dependency = {}
      for key in dependency.keys
        if key != 'group' and key != 'artifact'
          new_dependency[key.to_sym] = dependency[key]
        elsif key == 'group'
          new_dependency[:groupid] = dependency['group']
        elsif key == 'artifact'
          new_dependency[:artifactid] = dependency['artifact']
        end
      end
      new_dependencies << new_dependency
    end
  end
  return new_dependencies
end

#parse_repositoriesObject

Extract repository list from file. Return: repository list.



246
247
248
249
250
251
252
253
254
255
256
257
# File 'lib/dependency_resolver.rb', line 246

def parse_repositories
  repositories = YAML::load(File.read(@file))
  new_repositories = []
  for repository in repositories
    if repository['repository']
      new_repositories << repository['repository']
    elsif repository['repositories']
      new_repositories = new_repositories + repository['repositories']
    end
  end
  return new_repositories
end