Skip to content
This repository was archived by the owner on Mar 15, 2022. It is now read-only.

Commit 4246c6e

Browse files
author
Brian Durand
committed
fix so jar file isn't built every time
1 parent d1f3193 commit 4246c6e

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

Rakefile

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,19 @@ namespace :java do
4949
FileUtils.rm_rf(classes_dir)
5050
ext_dir = File.join(base_dir, "ext", "java")
5151
source_files = FileList["#{base_dir}/**/*.java"]
52-
FileUtils.mkdir_p(classes_dir)
53-
`#{ENV['JAVA_HOME']}/bin/javac -classpath '#{"#{ENV['JRUBY_HOME']}/lib/jruby.jar"}' -d '#{classes_dir}' -sourcepath '#{ext_dir}' '#{source_files.join("' '")}'`
54-
if $? == 0
55-
FileUtils.rm_rf(jar_dir) if File.exist?(jar_dir)
56-
FileUtils.mkdir_p(jar_dir)
57-
`#{ENV['JAVA_HOME']}/bin/jar cf '#{File.join(jar_dir, 'reference.jar')}' -C '#{classes_dir}' org`
52+
jar_file = File.join(jar_dir, 'reference.jar')
53+
# Only build if any of the source files have changed
54+
up_to_date = File.exist?(jar_file) && source_files.all?{|f| File.mtime(f) <= File.mtime(jar_file)}
55+
unless up_to_date
56+
FileUtils.mkdir_p(classes_dir)
57+
`#{ENV['JAVA_HOME']}/bin/javac -classpath '#{"#{ENV['JRUBY_HOME']}/lib/jruby.jar"}' -d '#{classes_dir}' -sourcepath '#{ext_dir}' '#{source_files.join("' '")}'`
58+
if $? == 0
59+
FileUtils.rm_rf(jar_dir) if File.exist?(jar_dir)
60+
FileUtils.mkdir_p(jar_dir)
61+
`#{ENV['JAVA_HOME']}/bin/jar cf '#{jar_file}' -C '#{classes_dir}' org`
62+
end
63+
FileUtils.rm_rf(classes_dir)
5864
end
59-
FileUtils.rm_rf(classes_dir)
6065
end
6166
end
6267

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)