buildr 1.4.0-java → 1.4.1-java

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,12 @@
1
+ 1.4.1 (2010-07-07)
2
+ * Added: BUILDR-420 Support external compiler
3
+ * Added: BUILDR-425 Specify dev dependencies in .gemspec
4
+ * Change: BUILDR-459 Update gemspec to accept json_pure ~> 1.4.3
5
+ * Fixed: BUILDR-455 cc_spec.rb l 160 depends on time and thus fails intermittently
6
+ * Fixed: BUILDR-461 Packages with different ids collide
7
+ * Fixed: BUILDR-439 "The command line is too long" when running TestNG tests
8
+ * Fixed: BUILDR-463 Setting a system property in the buildfile causes a NoClassDefFoundError
9
+
1
10
  1.4.0 (2010-06-18)
2
11
  * Added: BUILDR-405 Enhance the idea7x extension to supply a task to delete generated files
3
12
  (Peter Donald)
data/_buildr CHANGED
@@ -20,8 +20,12 @@
20
20
  require 'rubygems'
21
21
  $LOAD_PATH << File.join(File.dirname(__FILE__), 'lib') << File.join(File.dirname(__FILE__), 'addon')
22
22
  spec = Gem::Specification.load(File.join(File.dirname(__FILE__), 'buildr.gemspec'))
23
+ # To avoid a warning about the version_requirements deprecation, we use this method inline.
24
+ def version_required(gem_def)
25
+ return Gem::Dependency.instance_methods.include?("requirement") ? gem_def.requirement : gem_def.version_requirements
26
+ end
23
27
  spec.dependencies.each do |dep|
24
- gem dep.name, dep.version_requirements.to_s
28
+ gem dep.name, version_required(dep).to_s if dep.type == :runtime
25
29
  end
26
30
  Gem.loaded_specs['buildr'] = spec # Prevents RubyGem from loading files from installed Buildr gems
27
31
 
data/_jbuildr CHANGED
@@ -20,8 +20,12 @@
20
20
  require 'rubygems'
21
21
  $LOAD_PATH << File.join(File.dirname(__FILE__), 'lib') << File.join(File.dirname(__FILE__), 'addon')
22
22
  spec = Gem::Specification.load(File.join(File.dirname(__FILE__), 'buildr.gemspec'))
23
+ # To avoid a warning about the version_requirements deprecation, we use this method inline.
24
+ def version_required(gem_def)
25
+ return Gem::Dependency.instance_methods.include?("requirement") ? gem_def.requirement : gem_def.version_requirements
26
+ end
23
27
  spec.dependencies.each do |dep|
24
- gem dep.name, dep.version_requirements.to_s
28
+ gem dep.name, version_required(dep).to_s if dep.type == :runtime
25
29
  end
26
30
  Gem.loaded_specs['buildr'] = spec # Prevents RubyGem from loading files from installed Buildr gems
27
31
 
@@ -16,7 +16,7 @@
16
16
 
17
17
  Gem::Specification.new do |spec|
18
18
  spec.name = 'buildr'
19
- spec.version = '1.4.0'
19
+ spec.version = '1.4.1'
20
20
  spec.author = 'Apache Buildr'
21
21
  spec.email = "users@buildr.apache.org"
22
22
  spec.homepage = "http://buildr.apache.org/"
@@ -53,7 +53,7 @@ for those one-off tasks, with a language that's a joy to use.
53
53
  spec.add_dependency 'net-sftp', '2.0.2'
54
54
  spec.add_dependency 'rubyzip', '0.9.1'
55
55
  spec.add_dependency 'highline', '1.5.1'
56
- spec.add_dependency 'json_pure', '1.4.0'
56
+ spec.add_dependency 'json_pure', '1.4.3'
57
57
  spec.add_dependency 'rubyforge', '2.0.3'
58
58
  spec.add_dependency 'hoe', '2.3.3'
59
59
  spec.add_dependency 'rjb', '1.2.5' if spec.platform.to_s == 'ruby'
@@ -63,4 +63,8 @@ for those one-off tasks, with a language that's a joy to use.
63
63
  spec.add_dependency 'xml-simple', '1.0.12'
64
64
  spec.add_dependency 'archive-tar-minitar', '0.5.2'
65
65
  spec.add_dependency 'jruby-openssl', '0.5.2' if spec.platform.to_s == 'java'
66
+ spec.add_development_dependency 'jekyll', '~> 0.5.2'
67
+ spec.add_development_dependency 'sdoc'
68
+ spec.add_development_dependency 'rcov', '~>0.8'
69
+ spec.add_development_dependency 'win32console' if spec.platform.to_s == 'x86-mswin32'
66
70
  end
@@ -20,6 +20,30 @@ The source code is included in both source and binary distribution, the Gem dist
20
20
 
21
21
  h2(#dist). Binaries and Source Code
22
22
 
23
+ h3. buildr 1.4.1 (2010-07-07)
24
+
25
+ |_. Package |_. MD5 Checksum |_. PGP |
26
+ | "buildr-1.4.1-java.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.1/buildr-1.4.1-java.gem | "505edb298e41e38f59058990e34f216e":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1-java.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1-java.gem.asc |
27
+ | "buildr-1.4.1-x86-mswin32.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.1/buildr-1.4.1-x86-mswin32.gem | "0d8fe64d03c22dbec997a0f58aa5b4b7":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1-x86-mswin32.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1-x86-mswin32.gem.asc |
28
+ | "buildr-1.4.1.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.1/buildr-1.4.1.gem | "4ccbea74c98e36041c3e71404efca905":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1.gem.asc |
29
+ | "buildr-1.4.1.tgz":http://www.apache.org/dyn/closer.cgi/buildr/1.4.1/buildr-1.4.1.tgz | "bc05316ab453a9ae4b9e597286740700":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1.tgz.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1.tgz.asc |
30
+ | "buildr-1.4.1.zip":http://www.apache.org/dyn/closer.cgi/buildr/1.4.1/buildr-1.4.1.zip | "9482d9b56ecd1679e5a481bfb07e85e3":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1.zip.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.1/buildr-1.4.1.zip.asc |
31
+
32
+ p>. ("Release signing keys":http://www.apache.org/dist/buildr/1.4.1/KEYS)
33
+
34
+
35
+ h3. buildr 1.4.0 (2010-06-18)
36
+
37
+ |_. Package |_. MD5 Checksum |_. PGP |
38
+ | "buildr-1.4.0-java.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.0/buildr-1.4.0-java.gem | "6304234b3e4b49ffb95dd5f155442935":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0-java.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0-java.gem.asc |
39
+ | "buildr-1.4.0-x86-mswin32.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.0/buildr-1.4.0-x86-mswin32.gem | "6a4b0ab7cc651128c25a4b7cc4867479":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0-x86-mswin32.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0-x86-mswin32.gem.asc |
40
+ | "buildr-1.4.0.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.4.0/buildr-1.4.0.gem | "96c4c4d56ac4baffbaa1980af39c2220":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0.gem.asc |
41
+ | "buildr-1.4.0.tgz":http://www.apache.org/dyn/closer.cgi/buildr/1.4.0/buildr-1.4.0.tgz | "f025d57e1a71e40bb02def291eb02363":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0.tgz.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0.tgz.asc |
42
+ | "buildr-1.4.0.zip":http://www.apache.org/dyn/closer.cgi/buildr/1.4.0/buildr-1.4.0.zip | "a7c39d799e0e7f31827d803d788927f0":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0.zip.md5 | "Sig":http://www.apache.org/dist/buildr/1.4.0/buildr-1.4.0.zip.asc |
43
+
44
+ p>. ("Release signing keys":http://www.apache.org/dist/buildr/1.4.0/KEYS)
45
+
46
+
23
47
  h3. buildr 1.3.5 (2009-10-05)
24
48
 
25
49
  |_. Package |_. MD5 Checksum |_. PGP |
@@ -46,14 +46,21 @@ So let's get started. You can "read the documentation online":quick_start.html,
46
46
 
47
47
  h2(#news). What's New
48
48
 
49
- New in Buildr 1.3.5:
50
-
51
- * Interactive shell (REPL) support, including BeanShell for Java projects
52
- * Scala libraries are automatically downloaded if not availabe locally
53
- * New 'cobertura:check' allows you to check for code coverage levels in your projects
54
- * Eclipse task is configurable to support various types of natures, builders, etc.
55
- * Dependency upgrades such as Net-SSH 2.0.15, JRuby 1.3.1, Rake 0.8.7, RSpec 1.2.8, easyb 0.9, TestNG 5.10
56
- * And 15+ bug fixes.
49
+ New in Buildr 1.4.0:
50
+
51
+ * Support for Scala 2.8 compiler-level change detection and dependency tracking
52
+ * Continuous compilation
53
+ * Support for Eclipse classpath variables to avoid absolute pathnames in generated .classpath
54
+ * "buildr test=only" will only run tests explicitly specified on the command line (and ignore transitive test dependencies)
55
+ * Generic documentation framework (we do doc, not just javadoc)
56
+ * New "test:failed" task to execute only tests that failed during last run
57
+ * Project extensions (before/after_define) now support dependency ordering similar to Rake
58
+ * Support unzipping tar.gz files
59
+ * ScalaTest now generates JUnit XML reports in addition to text files.
60
+ * Support protocol buffer code generation
61
+ * Tested against Windows and Ubuntu on JRuby and MRI (and experimenting with Rubinius)
62
+ * Dependency upgrades such as Ant 1.8.0, JUnit 4.7, JMock 2.5.1, Cobertura 1.9.4.1, Scala Specs 1.6.2.1, ScalaCheck 1.6, ScalaTest 1.0.1
63
+ * And 60+ bug fixes !
57
64
 
58
65
  See the "CHANGELOG":CHANGELOG for full details.
59
66
 
@@ -14,7 +14,7 @@
14
14
  # the License.
15
15
 
16
16
  module Buildr
17
- VERSION = '1.4.0'.freeze
17
+ VERSION = '1.4.1'.freeze
18
18
  end
19
19
 
20
20
  require 'buildr/core'
@@ -299,7 +299,7 @@ module Buildr
299
299
  # Release.find.tag_name = lambda { |ver| "foo-#{ver}" }
300
300
  # Deprecated: you should use Release.tag_name instead
301
301
  def tag_name=(tag_proc)
302
- warn("Release.find.tag_name is deprecated. You should use Release.tag_name instead")
302
+ Buildr.application.deprecated "Release.find.tag_name is deprecated. You should use Release.tag_name instead"
303
303
  Release.tag_name=(tag_proc)
304
304
  end
305
305
 
@@ -50,7 +50,13 @@ module Buildr
50
50
  def compilers
51
51
  @compilers ||= []
52
52
  end
53
-
53
+
54
+ private
55
+
56
+ # Only used by our specs.
57
+ def compilers=(compilers)
58
+ @compilers = compilers
59
+ end
54
60
  end
55
61
 
56
62
  # Base class for all compilers, with common functionality. Extend and over-ride as you see fit
@@ -16,6 +16,7 @@
16
16
 
17
17
  require RUBY_PLATFORM == 'java' ? 'buildr/java/jruby' : 'buildr/java/rjb'
18
18
  require 'buildr/java/compiler'
19
+ require 'buildr/java/external'
19
20
  require 'buildr/java/tests'
20
21
  require 'buildr/java/bdd'
21
22
  require 'buildr/java/packaging'
@@ -38,7 +38,7 @@ module Buildr
38
38
  # Ant-Trax required for running the JUnitReport task, and there's no other place
39
39
  # to put it but the root classpath.
40
40
  @dependencies ||= ["org.apache.ant:ant:jar:#{version}", "org.apache.ant:ant-launcher:jar:#{version}",
41
- "org.apache.ant:ant-trax:jar:#{version}"]
41
+ "org.apache.ant:ant-trax:jar:#{version}"]
42
42
  end
43
43
 
44
44
  private
@@ -0,0 +1,73 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with this
3
+ # work for additional information regarding copyright ownership. The ASF
4
+ # licenses this file to you under the Apache License, Version 2.0 (the
5
+ # "License"); you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations under
14
+ # the License.
15
+
16
+ module Buildr
17
+ module Compiler
18
+ class ExternalJavac< Buildr::Compiler::Javac
19
+
20
+ OPTIONS = [:jvm, :warnings, :debug, :deprecation, :source, :target, :lint, :other]
21
+
22
+ specify :language=>:java, :sources => 'java', :source_ext => 'java',
23
+ :target=>'classes', :target_ext=>'class', :packaging=>:jar
24
+
25
+
26
+ def compile(sources, target, dependencies) #:nodoc:
27
+ check_options options, OPTIONS
28
+ cmd_args = []
29
+ # tools.jar contains the Java compiler.
30
+ dependencies << Java.tools_jar if Java.tools_jar
31
+ cmd_args << '-classpath' << dependencies.join(File::PATH_SEPARATOR) unless dependencies.empty?
32
+ source_paths = sources.select { |source| File.directory?(source) }
33
+ cmd_args << '-sourcepath' << source_paths.join(File::PATH_SEPARATOR) unless source_paths.empty?
34
+ cmd_args << '-d' << File.expand_path(target)
35
+ cmd_args += externaljavac_args
36
+ Tempfile.open("external") {|tmp|
37
+ tmp.write files_from_sources(sources).join(' ')
38
+ cmd_args << "@#{tmp.path}"
39
+ }
40
+ unless Buildr.application.options.dryrun
41
+ javac_path = File.join(options[:jvm] || ENV['JAVA_HOME'], "bin", "javac")
42
+ final_args = cmd_args.insert(0, javac_path).push('2>&1').join(' ')
43
+ trace(final_args)
44
+ info %x[#{final_args}]
45
+ fail 'Failed to compile, see errors above' unless $?.success?
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ # See arg list here: http://publib.boulder.ibm.com/infocenter/rsahelp/v7r0m0/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm
52
+ def externaljavac_args #:nodoc:
53
+ args = []
54
+ args << '-nowarn' unless options[:warnings]
55
+ args << '-verbose' if Buildr.application.options.trace
56
+ args << '-g' if options[:debug]
57
+ args << '-deprecation' if options[:deprecation]
58
+ args << '-source' << options[:source].to_s if options[:source]
59
+ args << '-target' << options[:target].to_s if options[:target]
60
+ case options[:lint]
61
+ when Array then args << "-Xlint:#{options[:lint].join(',')}"
62
+ when String then args << "-Xlint:#{options[:lint]}"
63
+ when true then args << '-Xlint'
64
+ end
65
+ args + Array(options[:other])
66
+ end
67
+
68
+ end
69
+
70
+ end
71
+ end
72
+
73
+ Buildr::Compiler.compilers << Buildr::Compiler::ExternalJavac
@@ -125,6 +125,7 @@ module Java
125
125
 
126
126
  def method_missing(sym, *args, &block) #:nodoc:
127
127
  raise ArgumentError, 'No arguments expected' unless args.empty?
128
+ Java.load # need to load RJB's classpath now!
128
129
  name = sym.to_s
129
130
  return ::Rjb.import(name) if name =~ /^[[:upper:]]/
130
131
  __package__ name
@@ -321,15 +321,20 @@ module Buildr
321
321
  end
322
322
 
323
323
  def run(tests, dependencies) #:nodoc:
324
- cmd_args = [ 'org.testng.TestNG', '-log', '2', '-sourcedir', task.compile.sources.join(';'), '-suitename', task.project.id ]
324
+ cmd_args = ['-log', '2', '-sourcedir', task.compile.sources.join(';'), '-suitename', task.project.id ]
325
325
  cmd_args << '-d' << task.report_to.to_s
326
326
  # run all tests in the same suite
327
327
  cmd_args << '-testclass' << tests
328
+
328
329
  cmd_options = { :properties=>options[:properties], :java_args=>options[:java_args],
329
330
  :classpath=>dependencies, :name => "TestNG in #{task.send(:project).name}" }
330
-
331
+
332
+ tmp = nil
331
333
  begin
332
- Java::Commands.java cmd_args, cmd_options
334
+ tmp = Tempfile.open("testNG")
335
+ tmp.write cmd_args.join("\n")
336
+ tmp.close
337
+ Java::Commands.java ['org.testng.TestNG', "@#{tmp.path}"], cmd_options
333
338
  return tests
334
339
  rescue
335
340
  # testng-failed.xml contains the list of failed tests *only*
@@ -338,6 +343,8 @@ module Buildr
338
343
  error "TestNG regexp returned unexpected failed tests #{failed.inspect}" unless (failed - tests).empty?
339
344
  # return the list of passed tests
340
345
  return tests - failed
346
+ ensure
347
+ tmp.close unless tmp.nil?
341
348
  end
342
349
  end
343
350
 
@@ -151,7 +151,7 @@ module Buildr
151
151
  spec = send("package_as_#{spec[:type]}_spec", spec) if respond_to?("package_as_#{spec[:type]}_spec")
152
152
  file_name = path_to(:target, Artifact.hash_to_file_name(spec))
153
153
  end
154
- package = (no_options && packages.detect { |pkg| pkg.type == spec[:type] &&
154
+ package = (no_options && packages.detect { |pkg| pkg.type == spec[:type] && (pkg.id.nil? || pkg.id == spec[:id]) &&
155
155
  (pkg.respond_to?(:classifier) ? pkg.classifier : nil) == spec[:classifier]}) ||
156
156
  packages.find { |pkg| pkg.name == file_name } ||
157
157
  packager.call(file_name)
@@ -171,6 +171,7 @@ module Buildr
171
171
 
172
172
  if spec[:file]
173
173
  class << package ; self ; end.send(:define_method, :type) { spec[:type] }
174
+ class << package ; self ; end.send(:define_method, :id) { nil }
174
175
  else
175
176
  # Make it an artifact using the specifications, and tell it how to create a POM.
176
177
  package.extend ActsAsArtifact
@@ -45,7 +45,7 @@ task :dependency do
45
45
  dep_spec.runtime_dependencies.map { |trans| transitive[trans].push(trans) }.flatten.uniq }
46
46
  # For each dependency, make sure *all* its transitive dependencies are listed
47
47
  # as a Buildr dependency, and order is preserved.
48
- spec.dependencies.each_with_index do |dep, index|
48
+ spec.dependencies.select {|dep| dep.type == :runtime }.each_with_index do |dep, index|
49
49
  puts "checking #{dep.name}"
50
50
  transitive[dep].each do |trans|
51
51
  matching = spec.dependencies.find { |existing| trans =~ existing }
@@ -108,7 +108,7 @@ describe Buildr::CCTask do
108
108
  project.cc.invoke
109
109
  end
110
110
 
111
- sleep 1
111
+ sleep 0.5
112
112
 
113
113
  compile.should_receive :reenable
114
114
  compile.should_receive :invoke
@@ -120,7 +120,7 @@ describe Buildr::CCTask do
120
120
 
121
121
  sleep 1 # Wait one sec as the timestamp needs to be different.
122
122
  touch File.join(Dir.pwd, 'src/main/java/Example.java')
123
- sleep 0.2# Wait one standard delay
123
+ sleep 0.3# Wait one standard delay and half
124
124
 
125
125
  thread.exit
126
126
  end
@@ -167,7 +167,7 @@ describe Buildr::CCTask do
167
167
 
168
168
  sleep 1 # Wait one sec as the timestamp needs to be different.
169
169
  touch File.join(Dir.pwd, 'foo/src/main/java/Example.java')
170
- sleep 0.2 # Wait one standard delay
170
+ sleep 0.3 # Wait one standard delay and half
171
171
 
172
172
  thread.exit
173
173
  end
@@ -0,0 +1,54 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one or more
2
+ # contributor license agreements. See the NOTICE file distributed with this
3
+ # work for additional information regarding copyright ownership. The ASF
4
+ # licenses this file to you under the Apache License, Version 2.0 (the
5
+ # "License"); you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ # License for the specific language governing permissions and limitations under
14
+ # the License.
15
+
16
+
17
+ require File.join(File.dirname(__FILE__), '../spec_helpers')
18
+
19
+ COMPILERS = Buildr::Compiler.compilers.dup
20
+ COMPILERS_WITHOUT_JAVAC = COMPILERS.dup
21
+ COMPILERS_WITHOUT_JAVAC.delete Buildr::Compiler::Javac
22
+
23
+ describe Buildr::Compiler::ExternalJavac do
24
+
25
+ before(:all) do
26
+ Buildr::Compiler.send :compilers=, COMPILERS_WITHOUT_JAVAC
27
+ end
28
+
29
+ describe "should compile a Java project just in the same way javac does" do
30
+ javac_spec = File.read(File.join(File.dirname(__FILE__), "compiler_spec.rb"))
31
+ javac_spec = javac_spec.match(Regexp.escape("require File.join(File.dirname(__FILE__), '../spec_helpers')\n")).post_match
32
+ javac_spec.gsub!("javac", "externaljavac")
33
+ eval(javac_spec)
34
+ end
35
+
36
+ it "should accept a :jvm option as JAVA_HOME" do
37
+ write 'src/main/java/Foo.java', 'public class Foo {}'
38
+ define "foo" do
39
+ compile.using(:externaljavac).options.jvm = "somepath"
40
+ end
41
+ begin
42
+ trace true #We set it true to grab the trace statement with the jvm path in it!
43
+ lambda {lambda {project("foo").compile.invoke}.should raise_error(RuntimeError, /Failed to compile, see errors above/)}.should show(/somepath\/bin\/javac .*/)
44
+ end
45
+ trace false
46
+ end
47
+
48
+ after :all do
49
+ Buildr::Compiler.send :compilers=, COMPILERS
50
+ end
51
+
52
+ end
53
+
54
+
@@ -583,6 +583,20 @@ describe Packaging, 'war' do
583
583
  define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war) }
584
584
  inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar', 'WEB-INF/lib/id-2.0.jar') }
585
585
  end
586
+
587
+ it 'should use artifacts from compile classpath if no libs specified, leaving the user specify which to exclude as files' do
588
+ make_jars
589
+ define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war).path('WEB-INF/lib').exclude('id-2.0.jar') }
590
+ inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar') }
591
+ end
592
+
593
+ it 'should use artifacts from compile classpath if no libs specified, leaving the user specify which to exclude as files with glob expressions' do
594
+ make_jars
595
+ define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war).path('WEB-INF/lib').exclude('**/id-2.0.jar') }
596
+ inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar') }
597
+ end
598
+
599
+
586
600
 
587
601
  it 'should include only specified libraries' do
588
602
  define 'foo', :version=>'1.0' do
@@ -263,7 +263,15 @@ describe Project, '#package' do
263
263
  end
264
264
  project('foo').packages.uniq.size.should be(5)
265
265
  end
266
-
266
+
267
+ it 'should create different tasks for package with different ids' do
268
+ define 'foo', :version=>'1.0' do
269
+ package(:jar, :id=>'bar')
270
+ package(:jar)
271
+ end
272
+ project('foo').packages.uniq.size.should be(2)
273
+ end
274
+
267
275
  it 'should create different tasks for package with classifier' do
268
276
  define 'foo', :version=>'1.0' do
269
277
  package(:jar)
@@ -23,7 +23,7 @@ unless defined?(SpecHelpers)
23
23
  # For testing we use the gem requirements specified on the buildr.gemspec
24
24
  spec = Gem::Specification.load(File.expand_path('../buildr.gemspec', File.dirname(__FILE__)))
25
25
  # Dependency.version_requirements deprecated in rubygems 1.3.6
26
- spec.dependencies.each { |dep| gem dep.name, (dep.respond_to?(:requirement) ? dep.requirement.to_s : dep.version_requirements.to_s) }
26
+ spec.dependencies.select {|dep| dep.type == :runtime }.each { |dep| gem dep.name, (dep.respond_to?(:requirement) ? dep.requirement.to_s : dep.version_requirements.to_s) }
27
27
 
28
28
  # Make sure to load from these paths first, we don't want to load any
29
29
  # code from Gem library.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.4.1
5
5
  platform: java
6
6
  authors:
7
7
  - Apache Buildr
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-06-18 00:00:00 -07:00
12
+ date: 2010-07-07 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -80,7 +80,7 @@ dependencies:
80
80
  requirements:
81
81
  - - "="
82
82
  - !ruby/object:Gem::Version
83
- version: 1.4.0
83
+ version: 1.4.3
84
84
  version:
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: rubyforge
@@ -152,6 +152,36 @@ dependencies:
152
152
  - !ruby/object:Gem::Version
153
153
  version: 0.5.2
154
154
  version:
155
+ - !ruby/object:Gem::Dependency
156
+ name: jekyll
157
+ type: :development
158
+ version_requirement:
159
+ version_requirements: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ~>
162
+ - !ruby/object:Gem::Version
163
+ version: 0.5.2
164
+ version:
165
+ - !ruby/object:Gem::Dependency
166
+ name: sdoc
167
+ type: :development
168
+ version_requirement:
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: "0"
174
+ version:
175
+ - !ruby/object:Gem::Dependency
176
+ name: rcov
177
+ type: :development
178
+ version_requirement:
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ~>
182
+ - !ruby/object:Gem::Version
183
+ version: "0.8"
184
+ version:
155
185
  description: |
156
186
  Apache Buildr is a build system for Java-based applications, including support
157
187
  for Scala, Groovy and a growing number of JVM languages and tools. We wanted
@@ -271,6 +301,7 @@ files:
271
301
  - lib/buildr/java/deprecated.rb
272
302
  - lib/buildr/java/doc.rb
273
303
  - lib/buildr/java/emma.rb
304
+ - lib/buildr/java/external.rb
274
305
  - lib/buildr/java/jruby.rb
275
306
  - lib/buildr/java/jtestr_runner.rb.erb
276
307
  - lib/buildr/java/org/apache/buildr/JavaTestFilter.class
@@ -336,6 +367,7 @@ files:
336
367
  - spec/java/commands_spec.rb
337
368
  - spec/java/compiler_spec.rb
338
369
  - spec/java/emma_spec.rb
370
+ - spec/java/external_spec.rb
339
371
  - spec/java/java_spec.rb
340
372
  - spec/java/packaging_spec.rb
341
373
  - spec/java/test_coverage_helper.rb