class MvnPluginConfig::App
Constants
- MAVEN_REPOSITORY
Private Instance Methods
collect_mojos_info(content)
click to toggle source
# File lib/mvn_plugin_config/app.rb, line 97 def collect_mojos_info content mojos = [] doc = Nokogiri::XML(content) doc.xpath('//mojos/mojo').each do |node| goal = node.xpath('goal') description = node.xpath('description') parameters = collect_parameters(node.xpath('parameters')) configuration = node.xpath('configuration') mojos << MojoInfo.new(goal, description, parameters, configuration) end mojos end
collect_parameters(node)
click to toggle source
# File lib/mvn_plugin_config/app.rb, line 115 def collect_parameters(node) parameters = [] node.children.each do |param_node| if param_node.name == 'parameter' parameter = {:name => param_node.xpath('name'), :type => param_node.xpath('type'), :required => param_node.xpath('required'), :editable => param_node.xpath('editable'), :description => param_node.xpath('description')} parameters << parameter end end parameters end
collect_plugins_info()
click to toggle source
# File lib/mvn_plugin_config/app.rb, line 72 def collect_plugins_info plugins = [] scanner = DirectoryScanner.new scanner.on_dir do |file, path| if file =~ /-plugin$/ directories = scanner.directories_in_parent(path) directories.each do |version| group_id = path[MAVEN_REPOSITORY.length+1..path.length-file.length-2].gsub('/', '.') artifact_id = file.gsub('/', '.') jar_file_name = jar_file_name(group_id, artifact_id, version) plugins << PluginInfo.new(group_id, artifact_id, version) if File.exist?(jar_file_name) end end end scanner.scan_subtree(MAVEN_REPOSITORY) plugins end
jar_file_name(group_id, artifact_id, version)
click to toggle source
# File lib/mvn_plugin_config/app.rb, line 49 def jar_file_name group_id, artifact_id, version "#{MAVEN_REPOSITORY}/#{group_id.gsub('.', '/')}/#{artifact_id}/#{version}/#{artifact_id}-#{version}.jar" end
plugin_file_content(group_id, artifact_id, version)
click to toggle source
# File lib/mvn_plugin_config/app.rb, line 53 def plugin_file_content group_id, artifact_id, version plugin_file_content = nil jar_file_name = jar_file_name(group_id, artifact_id, version) Zip::ZipInputStream.open(jar_file_name) do |zis| done = false while (not done) do entry = zis.get_next_entry if entry.name == "META-INF/maven/plugin.xml" plugin_file_content = zis.read done = true end end end plugin_file_content end