buildr 1.2.7 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +6 -0
- data/Rakefile +1 -1
- data/lib/buildr.rb +1 -1
- data/lib/buildr/scala.rb +5 -5
- data/lib/buildr/xmlbeans.rb +4 -2
- data/lib/java/artifact.rb +54 -6
- data/lib/java/eclipse.rb +25 -2
- metadata +4 -4
data/CHANGELOG
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
1.2.8 (11/1/2007)
|
2
|
+
* Added: Resolving Maven snapshots from remote repository (Rhett Sutphin)
|
3
|
+
* Changed: scala options.target now takes number, e.g. "1.5" instead of "jvm-1.5" (Nathan Hamblen)
|
4
|
+
* Changed: Eclipse task uses updated Scala plugin nature and builder (Alex Boisvert)
|
5
|
+
* Fixed: Bringing Buildr back to 1.0.9, XMLBeans fix.
|
6
|
+
|
1
7
|
1.2.7 (10/29/2007)
|
2
8
|
* Added: You can create an artifact from a given file using artifact(<spec>).from(<path>). You can then install it into the local repository or upload it to the release server using install(<artifacts>) and upload(<artifacts>). (Idea: Shane Witbeck and Tommy Mason).
|
3
9
|
* Added: ANTLR support.
|
data/Rakefile
CHANGED
@@ -44,7 +44,7 @@ def specify(platform)
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
spec = specify(Gem::Platform::RUBY) { |spec| spec.add_dependency "rjb", "
|
47
|
+
spec = specify(Gem::Platform::RUBY) { |spec| spec.add_dependency "rjb", ">= 1.0.9" }
|
48
48
|
jruby_spec = specify('java')
|
49
49
|
package = Rake::GemPackageTask.new(spec) do |pkg|
|
50
50
|
pkg.need_tar = true
|
data/lib/buildr.rb
CHANGED
data/lib/buildr/scala.rb
CHANGED
@@ -9,12 +9,12 @@ module Buildr
|
|
9
9
|
|
10
10
|
module Scala
|
11
11
|
class << self
|
12
|
-
def
|
13
|
-
ENV["SCALA_HOME"]
|
12
|
+
def scala_home
|
13
|
+
ENV["SCALA_HOME"]
|
14
14
|
end
|
15
15
|
|
16
16
|
def scala_lib
|
17
|
-
scala_lib =
|
17
|
+
scala_lib = scala_home + "/lib/scala-library.jar"
|
18
18
|
end
|
19
19
|
|
20
20
|
def scalac(*args)
|
@@ -32,7 +32,7 @@ module Buildr
|
|
32
32
|
cmd_args = []
|
33
33
|
use_fsc = !(ENV["USE_FSC"] =~ /^(no|off|false)$/i)
|
34
34
|
classpath = classpath_from(options)
|
35
|
-
scala_cp = [ classpath, FileList["#{
|
35
|
+
scala_cp = [ classpath, FileList["#{scala_home}/lib/*"] ].flatten.join(File::PATH_SEPARATOR)
|
36
36
|
cmd_args << "-cp" << scala_cp unless scala_cp.empty?
|
37
37
|
cmd_args << "-sourcepath" << options[:sourcepath].join(File::PATH_SEPARATOR) if options[:sourcepath]
|
38
38
|
cmd_args << "-d" << options[:output].to_s if options[:output]
|
@@ -154,7 +154,7 @@ module Buildr
|
|
154
154
|
args << "-g" if debug
|
155
155
|
args << "-deprecation" if deprecation
|
156
156
|
args << "-source" << source.to_s if source
|
157
|
-
args << "-target"
|
157
|
+
args << "-target:jvm-" + target.to_s if target
|
158
158
|
case lint
|
159
159
|
when Array
|
160
160
|
args << "-Xlint:#{lint.join(',')}"
|
data/lib/buildr/xmlbeans.rb
CHANGED
@@ -6,7 +6,9 @@ module Buildr
|
|
6
6
|
# Provides XMLBeans schema compiler. Require explicitly using <code>require "buildr/xmlbeans"</code>.
|
7
7
|
module XMLBeans
|
8
8
|
|
9
|
-
|
9
|
+
STAX = "stax:stax-api:jar:1.0"
|
10
|
+
XMLBEANS = "org.apache.xmlbeans:xmlbeans:jar:2.3.0"
|
11
|
+
REQUIRES = [ STAX, XMLBEANS ]
|
10
12
|
|
11
13
|
class << self
|
12
14
|
|
@@ -44,7 +46,7 @@ module Buildr
|
|
44
46
|
XMLBeans.compile args.flatten, :output=>task.name,
|
45
47
|
:javasource=>compile.options.source, :xsb=>compile.target
|
46
48
|
end
|
47
|
-
compile.from(generated).with(
|
49
|
+
compile.from(generated).with(STAX, XMLBEANS)
|
48
50
|
# Once compiled, we need to copy the generated XSB/XSD and one (magical?) class file
|
49
51
|
# into the target directory, or the rest is useless.
|
50
52
|
compile do |task|
|
data/lib/java/artifact.rb
CHANGED
@@ -37,6 +37,10 @@ module Buildr
|
|
37
37
|
# Optional artifact classifier.
|
38
38
|
attr_reader :classifier
|
39
39
|
|
40
|
+
def snapshot?
|
41
|
+
version =~ /-SNAPSHOT$/
|
42
|
+
end
|
43
|
+
|
40
44
|
# :call-seq:
|
41
45
|
# to_spec_hash() => Hash
|
42
46
|
#
|
@@ -127,6 +131,10 @@ module Buildr
|
|
127
131
|
ARTIFACT_ATTRIBUTES.each { |key| instance_variable_set("@#{key}", spec[key]) }
|
128
132
|
self
|
129
133
|
end
|
134
|
+
|
135
|
+
def group_path
|
136
|
+
group.gsub(".", "/")
|
137
|
+
end
|
130
138
|
|
131
139
|
end
|
132
140
|
|
@@ -295,13 +303,12 @@ module Buildr
|
|
295
303
|
# which they are returned from #remote, until successful. It always downloads the POM first.
|
296
304
|
def download()
|
297
305
|
puts "Downloading #{to_spec}" if Rake.application.options.trace
|
298
|
-
remote = Buildr.repositories.remote
|
306
|
+
remote = Buildr.repositories.remote.map { |repo_url| URI === repo_url ? repo_url : URI.parse(repo_url) }
|
307
|
+
remote = remote.each { |repo_url| repo_url.path += "/" unless repo_url.path[-1] == "/" }
|
299
308
|
fail "No remote repositories defined!" if remote.empty?
|
300
|
-
remote.find do |repo_url|
|
301
|
-
repo_url = URI.parse(repo_url) unless URI === repo_url
|
302
|
-
repo_url.path += "/" unless repo_url.path[-1] == "/"
|
309
|
+
exact_success = remote.find do |repo_url|
|
303
310
|
begin
|
304
|
-
path =
|
311
|
+
path = "#{group_path}/#{id}/#{version}/#{File.basename(name)}"
|
305
312
|
mkpath File.dirname(name), :verbose=>false
|
306
313
|
URI.download repo_url + path, name
|
307
314
|
true
|
@@ -312,9 +319,50 @@ module Buildr
|
|
312
319
|
puts error.backtrace.join("\n") if Rake.application.options.trace
|
313
320
|
false
|
314
321
|
end
|
315
|
-
end
|
322
|
+
end
|
323
|
+
|
324
|
+
if exact_success
|
325
|
+
return
|
326
|
+
elsif snapshot?
|
327
|
+
download_m2_snapshot(remote)
|
328
|
+
else
|
329
|
+
fail_download(remote)
|
330
|
+
end
|
316
331
|
end
|
317
332
|
|
333
|
+
def download_m2_snapshot(remote_uris)
|
334
|
+
remote_uris.find do |repo_url|
|
335
|
+
snapshot_url = current_snapshot_repo_url(repo_url)
|
336
|
+
if snapshot_url
|
337
|
+
begin
|
338
|
+
URI.download snapshot_url, name
|
339
|
+
rescue URI::NotFoundError
|
340
|
+
false
|
341
|
+
end
|
342
|
+
else
|
343
|
+
false
|
344
|
+
end
|
345
|
+
end or fail_download(remote_uris)
|
346
|
+
end
|
347
|
+
|
348
|
+
def current_snapshot_repo_url(repo_url)
|
349
|
+
begin
|
350
|
+
metadata_path = "#{group_path}/#{id}/#{version}/maven-metadata.xml"
|
351
|
+
metadata_xml = StringIO.new
|
352
|
+
URI.download repo_url + metadata_path, metadata_xml
|
353
|
+
metadata = REXML::Document.new(metadata_xml.string).root
|
354
|
+
timestamp = REXML::XPath.first(metadata, "//timestamp").text
|
355
|
+
build_number = REXML::XPath.first(metadata, "//buildNumber").text
|
356
|
+
snapshot_of = version[0, version.size - 9]
|
357
|
+
repo_url + "#{group_path}/#{id}/#{version}/#{id}-#{snapshot_of}-#{timestamp}-#{build_number}.#{type}"
|
358
|
+
rescue URI::NotFoundError
|
359
|
+
nil
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
def fail_download(remote_uris)
|
364
|
+
fail "Failed to download #{to_spec}, tried the following repositories:\n#{remote_uris.join("\n")}"
|
365
|
+
end
|
318
366
|
end
|
319
367
|
|
320
368
|
|
data/lib/java/eclipse.rb
CHANGED
@@ -15,6 +15,7 @@ module Buildr
|
|
15
15
|
|
16
16
|
# We need paths relative to the top project's base directory.
|
17
17
|
root_path = lambda { |p| f = lambda { |p| p.parent ? f[p.parent] : p.base_dir } ; f[p] }[project]
|
18
|
+
|
18
19
|
# We want the Eclipse files changed every time the Buildfile changes, but also anything loaded by
|
19
20
|
# the Buildfile (buildr.rb, separate file listing dependencies, etc), so we add anything required
|
20
21
|
# after the Buildfile. So which don't know where Buildr shows up exactly, ignore files that show
|
@@ -22,6 +23,9 @@ module Buildr
|
|
22
23
|
sources = Buildr.build_files.map { |file| File.expand_path(file) }.select { |file| File.exist?(file) }
|
23
24
|
sources << File.expand_path(Rake.application.rakefile, root_path) if Rake.application.rakefile
|
24
25
|
|
26
|
+
# Check if project has scala facet
|
27
|
+
scala = project.task("scalac") if Rake::Task.task_defined?(project.name+":"+"scalac")
|
28
|
+
|
25
29
|
# Only for projects that are Eclipse packagable.
|
26
30
|
if project.packages.detect { |pkg| pkg.type.to_s =~ /(jar)|(war)|(rar)|(mar)|(aar)/ }
|
27
31
|
eclipse.enhance [ file(project.path_to(".classpath")), file(project.path_to(".project")) ]
|
@@ -45,6 +49,8 @@ module Buildr
|
|
45
49
|
xml.classpath do
|
46
50
|
# Note: Use the test classpath since Eclipse compiles both "main" and "test" classes using the same classpath
|
47
51
|
cp = project.test.compile.classpath.map(&:to_s) - [ project.compile.target.to_s ]
|
52
|
+
cp += scala.classpath.map(&:to_s) if scala
|
53
|
+
cp = cp.uniq
|
48
54
|
|
49
55
|
# Convert classpath elements into applicable Project objects
|
50
56
|
cp.collect! { |path| projects.detect { |prj| prj.packages.detect { |pkg| pkg.to_s == path } } || path }
|
@@ -59,8 +65,17 @@ module Buildr
|
|
59
65
|
generated, libs = others.partition { |path| path.to_s.index(project.path_to.to_s) == 0 }
|
60
66
|
|
61
67
|
xml.classpathentry :kind=>'con', :path=>'org.eclipse.jdt.launching.JRE_CONTAINER'
|
62
|
-
|
63
|
-
|
68
|
+
xml.classpathentry :kind=>'con', :path=>'ch.epfl.lamp.sdt.launching.SCALA_CONTAINER' if scala
|
69
|
+
|
70
|
+
srcs = project.compile.sources
|
71
|
+
srcs << scala.sources if scala
|
72
|
+
|
73
|
+
# hack until we have sunit task
|
74
|
+
project.path_to("src/test/scala").tap do |dir|
|
75
|
+
srcs += dir if scala and File.exist?(dir)
|
76
|
+
end
|
77
|
+
|
78
|
+
srcs = srcs.map { |src| relative[src] } + generated.map { |src| relative[src] }
|
64
79
|
srcs.sort.uniq.each do |path|
|
65
80
|
xml.classpathentry :kind=>'src', :path=>path, :excluding=>excludes
|
66
81
|
end
|
@@ -118,9 +133,17 @@ module Buildr
|
|
118
133
|
xml.buildCommand do
|
119
134
|
xml.name "org.eclipse.jdt.core.javabuilder"
|
120
135
|
end
|
136
|
+
if scala
|
137
|
+
xml.buildCommand do
|
138
|
+
#xml.name "ch.epfl.lamp.sdt.core.scalabuilder"
|
139
|
+
xml.name "scala.plugin.scalabuilder"
|
140
|
+
end
|
141
|
+
end
|
121
142
|
end
|
122
143
|
xml.natures do
|
123
144
|
xml.nature "org.eclipse.jdt.core.javanature"
|
145
|
+
#xml.nature "ch.epfl.lamp.sdt.core.scalanature" if scala
|
146
|
+
xml.nature "scala.plugin.scalanature" if scala
|
124
147
|
end
|
125
148
|
end
|
126
149
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: buildr
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.2.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.2.8
|
7
|
+
date: 2007-11-01 00:00:00 -07:00
|
8
8
|
summary: A build system that doesn't suck
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -198,7 +198,7 @@ dependencies:
|
|
198
198
|
version_requirement:
|
199
199
|
version_requirements: !ruby/object:Gem::Version::Requirement
|
200
200
|
requirements:
|
201
|
-
- - "
|
201
|
+
- - ">="
|
202
202
|
- !ruby/object:Gem::Version
|
203
|
-
version: 1.0.
|
203
|
+
version: 1.0.9
|
204
204
|
version:
|