module Buildr::Shade

Provides the shade method.

Public Class Methods

shade(input_jar, output_jar, relocations = {}) click to toggle source
# File addon/buildr/shade.rb, line 19
def shade(input_jar, output_jar, relocations = {})

  shaded_jar = (input_jar.to_s + '-shaded')
  a = Buildr.artifact('org.realityforge.shade:shade-cli:jar:1.0.0')
  a.invoke

  args = []
  args << Java::Commands.path_to_bin('java')
  args << '-jar'
  args << a.to_s
  args << '--input'
  args << input_jar.to_s
  args << '--output'
  args << shaded_jar.to_s
  relocations.each_pair do |k, v|
    args << "-r#{k}=#{v}"
  end

  sh args.join(' ')
  FileUtils.mv shaded_jar, output_jar.to_s
end