@@ -4,6 +4,7 @@ task default: [:specs]
44
55require 'bundler/gem_tasks'
66require 'rubocop/rake_task'
7+ require 'rake/clean'
78
89RuboCop ::RakeTask . new
910
@@ -15,3 +16,47 @@ task :specs do
1516 require File . basename ( f . sub ( /.rb$/ , '' ) )
1617 end
1718end
19+
20+ require_relative 'lib/jars/mima/version'
21+
22+ MIMA_VERSION = Jars ::Mima ::MIMA_VERSION
23+ SLF4J_VERSION = Jars ::Mima ::SLF4J_VERSION
24+ MAVEN_CENTRAL = 'https://repo.maven.apache.org/maven2'
25+ MIMA_DIR = 'lib/jars/mima'
26+
27+ MIMA_JARS = {
28+ "slf4j-api-#{ SLF4J_VERSION } .jar" =>
29+ "#{ MAVEN_CENTRAL } /org/slf4j/slf4j-api/#{ SLF4J_VERSION } /slf4j-api-#{ SLF4J_VERSION } .jar" ,
30+ "slf4j-simple-#{ SLF4J_VERSION } .jar" =>
31+ "#{ MAVEN_CENTRAL } /org/slf4j/slf4j-simple/#{ SLF4J_VERSION } /slf4j-simple-#{ SLF4J_VERSION } .jar" ,
32+ "jcl-over-slf4j-#{ SLF4J_VERSION } .jar" =>
33+ "#{ MAVEN_CENTRAL } /org/slf4j/jcl-over-slf4j/#{ SLF4J_VERSION } /jcl-over-slf4j-#{ SLF4J_VERSION } .jar" ,
34+ "context-#{ MIMA_VERSION } .jar" =>
35+ "#{ MAVEN_CENTRAL } /eu/maveniverse/maven/mima/context/#{ MIMA_VERSION } /context-#{ MIMA_VERSION } .jar" ,
36+ "standalone-static-uber-#{ MIMA_VERSION } .jar" =>
37+ "#{ MAVEN_CENTRAL } /eu/maveniverse/maven/mima/runtime/standalone-static-uber/#{ MIMA_VERSION } /standalone-static-uber-#{ MIMA_VERSION } .jar"
38+ }
39+
40+ MIMA_JARS . each_key { |jar | CLEAN . include ( File . join ( MIMA_DIR , jar ) ) }
41+
42+ desc 'download Mima (and dependent SLF4J) jars'
43+ task :download_jars do
44+ require 'fileutils'
45+ require 'open-uri'
46+
47+ FileUtils . mkdir_p ( MIMA_DIR )
48+
49+ MIMA_JARS . each do |filename , url |
50+ target = File . join ( MIMA_DIR , filename )
51+ if File . exist? ( target )
52+ puts " exists: #{ target } "
53+ next
54+ end
55+
56+ puts " downloading #{ filename } ..."
57+ URI . open ( url ) do |remote | # rubocop:disable Security/Open
58+ File . open ( target , 'wb' ) { |f | f . write ( remote . read ) }
59+ end
60+ puts " saved: #{ target } "
61+ end
62+ end
0 commit comments