class JavaClass::Classpath::MavenArtefact

A reference to a Maven artefact. This is a group/artefact/version tuple that points to a single Jar in the Maven repository.

Author

Peter Kofler

Attributes

group[R]
name[R]
title[R]
version[R]

Public Class Methods

new(group, name, version, title=nil) click to toggle source

Create a Maven artefact with given group , name and version .

# File lib/javaclass/classpath/maven_artefact.rb, line 13
def initialize(group, name, version, title=nil)
  @group = group
  @name = name
  @version = version
  @title = title || make_title
end

Public Instance Methods

classpath() click to toggle source

Return this Maven artefact's JavaClass::Classpath. This is a single Jar in the Maven repository.

# File lib/javaclass/classpath/maven_artefact.rb, line 28
def classpath
  cp = CompositeClasspath.new(basename)
  cp.add_file_name(repository_path)
  cp
end
download_if_needed() click to toggle source

Kind of hack function to call Maven to download the current artefact if it does not exist.

# File lib/javaclass/classpath/maven_artefact.rb, line 21
def download_if_needed
  unless File.exist? repository_path
    puts `#{download_command}`
  end
end
repository_path() click to toggle source

Return the Jar's file path of this artefact inside ~/.m2/repository

# File lib/javaclass/classpath/maven_artefact.rb, line 35
def repository_path
  File.join(ENV['HOME'], '.m2', 'repository', @group.gsub(/\./, '/'),  @name, @version, "#{basename}.jar" )
end

Private Instance Methods

basename() click to toggle source
# File lib/javaclass/classpath/maven_artefact.rb, line 51
def basename
  "#{@name}-#{@version}"
end
download_command() click to toggle source
# File lib/javaclass/classpath/maven_artefact.rb, line 55
def download_command
  "mvn org.apache.maven.plugins:maven-dependency-plugin:2.5:get -Dartifact=#{@group}:#{@name}:#{@version}"
end
make_title() click to toggle source
# File lib/javaclass/classpath/maven_artefact.rb, line 41
def make_title
  @name.sub(/\d$/, '').split(/[\s-]/).map { |p|
    if p.size < 4
      p.upcase
    else
      p.capitalize
    end 
  }.join(' ')
end