lock_jar 0.10.0 → 0.10.2

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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +59 -59
  3. data/.travis.yml +8 -8
  4. data/CHANGELOG.md +30 -21
  5. data/Gemfile +13 -13
  6. data/Guardfile +9 -9
  7. data/README.md +375 -375
  8. data/Rakefile +24 -24
  9. data/bundler/Gemfile +21 -21
  10. data/bundler/LICENSE.txt +22 -22
  11. data/bundler/README.md +29 -29
  12. data/bundler/Rakefile +2 -2
  13. data/bundler/lib/lock_jar_bundler/bundler.rb +35 -35
  14. data/bundler/lib/lock_jar_bundler/piggy_back.rb +97 -97
  15. data/bundler/lib/lock_jar_bundler/version.rb +5 -5
  16. data/bundler/lib/lock_jar_bundler.rb +4 -4
  17. data/bundler/lock_jar_bundler.gemspec +24 -24
  18. data/bundler/spec/Jarfile +2 -2
  19. data/bundler/spec/dummy_gem/dummy_gem.gemspec +19 -19
  20. data/bundler/spec/lock_jar_bundler_spec.rb +48 -48
  21. data/bundler/spec/spec_helper.rb +88 -88
  22. data/lib/lock_jar/buildr.rb +144 -144
  23. data/lib/lock_jar/bundler.rb +154 -154
  24. data/lib/lock_jar/cli.rb +64 -64
  25. data/lib/lock_jar/domain/artifact.rb +123 -123
  26. data/lib/lock_jar/domain/dsl.rb +187 -187
  27. data/lib/lock_jar/domain/dsl_helper.rb +83 -83
  28. data/lib/lock_jar/domain/gem_dsl.rb +44 -44
  29. data/lib/lock_jar/domain/jarfile_dsl.rb +46 -46
  30. data/lib/lock_jar/domain/lockfile.rb +113 -113
  31. data/lib/lock_jar/maven.rb +111 -111
  32. data/lib/lock_jar/registry.rb +92 -92
  33. data/lib/lock_jar/resolver.rb +95 -95
  34. data/lib/lock_jar/runtime.rb +359 -355
  35. data/lib/lock_jar/version.rb +3 -3
  36. data/lib/lock_jar.rb +172 -177
  37. data/lock_jar.gemspec +27 -27
  38. data/spec/fixtures/Jarfile +13 -13
  39. data/spec/fixtures/Jarfile2 +1 -0
  40. data/spec/lock_jar/class_loader_spec.rb +57 -57
  41. data/spec/lock_jar/cli_spec.rb +100 -100
  42. data/spec/lock_jar/domain/dsl_helper_spec.rb +52 -52
  43. data/spec/lock_jar/domain/dsl_spec.rb +57 -57
  44. data/spec/lock_jar/maven_spec.rb +23 -23
  45. data/spec/lock_jar/resolver_spec.rb +26 -26
  46. data/spec/lock_jar/runtime_spec.rb +26 -26
  47. data/spec/lock_jar_spec.rb +372 -295
  48. data/spec/pom.xml +34 -34
  49. data/spec/spec_helper.rb +38 -38
  50. data/spec/support/helper.rb +44 -44
  51. metadata +3 -1
@@ -1,49 +1,49 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__),'spec_helper'))
2
-
3
- require 'lock_jar'
4
- require 'lock_jar_bundler'
5
-
6
- describe LockJar::Bundler, "#bundled_jarfiles" do
7
- it "should give a list of jarfile paths" do
8
- jar_files = LockJar::Bundler.bundled_jarfiles([:test])
9
- expect(jar_files).to eql [File.expand_path('spec/dummy_gem/Jarfile')]
10
- end
11
-
12
- it "should create a Jarfile.lock including bundler Jarfiles" do
13
- LockJar.lock( "spec/Jarfile", :local_repo => TEST_REPO, :lockfile => "#{TEMP_DIR}/BundledJarfile.lock" )
14
- lockfile = LockJar.read("#{TEMP_DIR}/BundledJarfile.lock")
15
- expect(lockfile.to_hash).to eql({
16
- "version"=>"0.10.0",
17
- "merged" => [File.expand_path('spec/dummy_gem/Jarfile')],
18
- "groups"=>{
19
- "default"=>{
20
- "dependencies"=> %w(
21
- com.google.guava:guava:jar:14.0.1
22
- com.metapossum:metapossum-scanner:jar:1.0.1
23
- com.tobedevoured.command:core:jar:0.3.2
24
- com.typesafe:config:jar:0.5.0
25
- commons-beanutils:commons-beanutils:jar:1.8.3
26
- commons-io:commons-io:jar:2.3
27
- commons-lang:commons-lang:jar:2.6
28
- commons-logging:commons-logging:jar:1.1.1
29
- org.modeshape:modeshape-common:jar:2.8.2.Final
30
- org.slf4j:slf4j-api:jar:1.6.6),
31
- "artifacts"=>[
32
- {"jar:com.tobedevoured.command:core:jar:0.3.2"=>{
33
- "transitive"=>{
34
- "commons-beanutils:commons-beanutils:jar:1.8.3"=>{
35
- "commons-logging:commons-logging:jar:1.1.1"=>{}},
36
- "com.typesafe:config:jar:0.5.0"=>{},
37
- "com.metapossum:metapossum-scanner:jar:1.0.1"=>{
38
- "commons-io:commons-io:jar:2.3"=>{}, "commons-lang:commons-lang:jar:2.6"=>{}},
39
- "org.slf4j:slf4j-api:jar:1.6.6"=>{},
40
- "org.modeshape:modeshape-common:jar:2.8.2.Final"=>{}
41
- }
42
- }},
43
- {"jar:com.google.guava:guava:jar:14.0.1"=>{"transitive"=>{}}}
44
- ]
45
- }
46
- }
47
- })
48
- end
1
+ require File.expand_path(File.join(File.dirname(__FILE__),'spec_helper'))
2
+
3
+ require 'lock_jar'
4
+ require 'lock_jar_bundler'
5
+
6
+ describe LockJar::Bundler, "#bundled_jarfiles" do
7
+ it "should give a list of jarfile paths" do
8
+ jar_files = LockJar::Bundler.bundled_jarfiles([:test])
9
+ expect(jar_files).to eql [File.expand_path('spec/dummy_gem/Jarfile')]
10
+ end
11
+
12
+ it "should create a Jarfile.lock including bundler Jarfiles" do
13
+ LockJar.lock( "spec/Jarfile", :local_repo => TEST_REPO, :lockfile => "#{TEMP_DIR}/BundledJarfile.lock" )
14
+ lockfile = LockJar.read("#{TEMP_DIR}/BundledJarfile.lock")
15
+ expect(lockfile.to_hash).to eql({
16
+ "version"=>"0.10.0",
17
+ "merged" => [File.expand_path('spec/dummy_gem/Jarfile')],
18
+ "groups"=>{
19
+ "default"=>{
20
+ "dependencies"=> %w(
21
+ com.google.guava:guava:jar:14.0.1
22
+ com.metapossum:metapossum-scanner:jar:1.0.1
23
+ com.tobedevoured.command:core:jar:0.3.2
24
+ com.typesafe:config:jar:0.5.0
25
+ commons-beanutils:commons-beanutils:jar:1.8.3
26
+ commons-io:commons-io:jar:2.3
27
+ commons-lang:commons-lang:jar:2.6
28
+ commons-logging:commons-logging:jar:1.1.1
29
+ org.modeshape:modeshape-common:jar:2.8.2.Final
30
+ org.slf4j:slf4j-api:jar:1.6.6),
31
+ "artifacts"=>[
32
+ {"jar:com.tobedevoured.command:core:jar:0.3.2"=>{
33
+ "transitive"=>{
34
+ "commons-beanutils:commons-beanutils:jar:1.8.3"=>{
35
+ "commons-logging:commons-logging:jar:1.1.1"=>{}},
36
+ "com.typesafe:config:jar:0.5.0"=>{},
37
+ "com.metapossum:metapossum-scanner:jar:1.0.1"=>{
38
+ "commons-io:commons-io:jar:2.3"=>{}, "commons-lang:commons-lang:jar:2.6"=>{}},
39
+ "org.slf4j:slf4j-api:jar:1.6.6"=>{},
40
+ "org.modeshape:modeshape-common:jar:2.8.2.Final"=>{}
41
+ }
42
+ }},
43
+ {"jar:com.google.guava:guava:jar:14.0.1"=>{"transitive"=>{}}}
44
+ ]
45
+ }
46
+ }
47
+ })
48
+ end
49
49
  end
@@ -1,88 +1,88 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
- # file to always be loaded, without a need to explicitly require it in any files.
5
- #
6
- # Given that it is always loaded, you are encouraged to keep this file as
7
- # light-weight as possible. Requiring heavyweight dependencies from this file
8
- # will add to the boot time of your test suite on EVERY test run, even for an
9
- # individual file that may not need all of that loaded. Instead, make a
10
- # separate helper file that requires this one and then use it only in the specs
11
- # that actually need it.
12
- #
13
- # The `.rspec` file also contains a few flags that are not defaults but that
14
- # users commonly want.
15
- #
16
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
-
18
- require 'pry'
19
-
20
- TEMP_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", ".spec-tmp"))
21
- TEST_REPO = File.expand_path(File.join(TEMP_DIR, "test-repo"))
22
-
23
- RSpec.configure do |config|
24
- # The settings below are suggested to provide a good initial experience
25
- # with RSpec, but feel free to customize to your heart's content.
26
- =begin
27
- # These two settings work together to allow you to limit a spec run
28
- # to individual examples or groups you care about by tagging them with
29
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
30
- # get run.
31
- config.filter_run :focus
32
- config.run_all_when_everything_filtered = true
33
-
34
- # Many RSpec users commonly either run the entire suite or an individual
35
- # file, and it's useful to allow more verbose output when running an
36
- # individual spec file.
37
- if config.files_to_run.one?
38
- # Use the documentation formatter for detailed output,
39
- # unless a formatter has already been configured
40
- # (e.g. via a command-line flag).
41
- config.default_formatter = 'doc'
42
- end
43
-
44
- # Print the 10 slowest examples and example groups at the
45
- # end of the spec run, to help surface which specs are running
46
- # particularly slow.
47
- config.profile_examples = 10
48
-
49
- # Run specs in random order to surface order dependencies. If you find an
50
- # order dependency and want to debug it, you can fix the order by providing
51
- # the seed, which is printed after each run.
52
- # --seed 1234
53
- config.order = :random
54
-
55
- # Seed global randomization in this process using the `--seed` CLI option.
56
- # Setting this allows you to use `--seed` to deterministically reproduce
57
- # test failures related to randomization by passing the same `--seed` value
58
- # as the one that triggered the failure.
59
- Kernel.srand config.seed
60
-
61
- # rspec-expectations config goes here. You can use an alternate
62
- # assertion/expectation library such as wrong or the stdlib/minitest
63
- # assertions if you prefer.
64
- config.expect_with :rspec do |expectations|
65
- # Enable only the newer, non-monkey-patching expect syntax.
66
- # For more details, see:
67
- # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
68
- expectations.syntax = :expect
69
- end
70
-
71
- # rspec-mocks config goes here. You can use an alternate test double
72
- # library (such as bogus or mocha) by changing the `mock_with` option here.
73
- config.mock_with :rspec do |mocks|
74
- # Enable only the newer, non-monkey-patching expect syntax.
75
- # For more details, see:
76
- # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
77
- mocks.syntax = :expect
78
-
79
- # Prevents you from mocking or stubbing a method that does not exist on
80
- # a real object. This is generally recommended.
81
- mocks.verify_partial_doubles = true
82
- end
83
- =end
84
-
85
- config.before(:suite) do
86
- FileUtils.mkdir_p(TEST_REPO)
87
- end
88
- end
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
+ # file to always be loaded, without a need to explicitly require it in any files.
5
+ #
6
+ # Given that it is always loaded, you are encouraged to keep this file as
7
+ # light-weight as possible. Requiring heavyweight dependencies from this file
8
+ # will add to the boot time of your test suite on EVERY test run, even for an
9
+ # individual file that may not need all of that loaded. Instead, make a
10
+ # separate helper file that requires this one and then use it only in the specs
11
+ # that actually need it.
12
+ #
13
+ # The `.rspec` file also contains a few flags that are not defaults but that
14
+ # users commonly want.
15
+ #
16
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
+
18
+ require 'pry'
19
+
20
+ TEMP_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", ".spec-tmp"))
21
+ TEST_REPO = File.expand_path(File.join(TEMP_DIR, "test-repo"))
22
+
23
+ RSpec.configure do |config|
24
+ # The settings below are suggested to provide a good initial experience
25
+ # with RSpec, but feel free to customize to your heart's content.
26
+ =begin
27
+ # These two settings work together to allow you to limit a spec run
28
+ # to individual examples or groups you care about by tagging them with
29
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
30
+ # get run.
31
+ config.filter_run :focus
32
+ config.run_all_when_everything_filtered = true
33
+
34
+ # Many RSpec users commonly either run the entire suite or an individual
35
+ # file, and it's useful to allow more verbose output when running an
36
+ # individual spec file.
37
+ if config.files_to_run.one?
38
+ # Use the documentation formatter for detailed output,
39
+ # unless a formatter has already been configured
40
+ # (e.g. via a command-line flag).
41
+ config.default_formatter = 'doc'
42
+ end
43
+
44
+ # Print the 10 slowest examples and example groups at the
45
+ # end of the spec run, to help surface which specs are running
46
+ # particularly slow.
47
+ config.profile_examples = 10
48
+
49
+ # Run specs in random order to surface order dependencies. If you find an
50
+ # order dependency and want to debug it, you can fix the order by providing
51
+ # the seed, which is printed after each run.
52
+ # --seed 1234
53
+ config.order = :random
54
+
55
+ # Seed global randomization in this process using the `--seed` CLI option.
56
+ # Setting this allows you to use `--seed` to deterministically reproduce
57
+ # test failures related to randomization by passing the same `--seed` value
58
+ # as the one that triggered the failure.
59
+ Kernel.srand config.seed
60
+
61
+ # rspec-expectations config goes here. You can use an alternate
62
+ # assertion/expectation library such as wrong or the stdlib/minitest
63
+ # assertions if you prefer.
64
+ config.expect_with :rspec do |expectations|
65
+ # Enable only the newer, non-monkey-patching expect syntax.
66
+ # For more details, see:
67
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
68
+ expectations.syntax = :expect
69
+ end
70
+
71
+ # rspec-mocks config goes here. You can use an alternate test double
72
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
73
+ config.mock_with :rspec do |mocks|
74
+ # Enable only the newer, non-monkey-patching expect syntax.
75
+ # For more details, see:
76
+ # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
77
+ mocks.syntax = :expect
78
+
79
+ # Prevents you from mocking or stubbing a method that does not exist on
80
+ # a real object. This is generally recommended.
81
+ mocks.verify_partial_doubles = true
82
+ end
83
+ =end
84
+
85
+ config.before(:suite) do
86
+ FileUtils.mkdir_p(TEST_REPO)
87
+ end
88
+ end
@@ -1,145 +1,145 @@
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
- require 'lock_jar'
17
- require 'lock_jar/domain/dsl'
18
-
19
- module Buildr
20
-
21
- @@global_lockjar_dsl = nil
22
-
23
- class << self
24
- def project_to_lockfile( project )
25
- "#{project.name.gsub(/:/,'-')}.lock"
26
- end
27
-
28
- def global_lockjar_dsl
29
- @@global_lockjar_dsl
30
- end
31
- end
32
-
33
- def lock_jar( &blk )
34
- @@global_lockjar_dsl = ::LockJar::Domain::Dsl.create(&blk)
35
- end
36
-
37
- namespace "lock_jar" do
38
- desc "Lock dependencies for each project"
39
- task("lock") do
40
- projects.each do |project|
41
- if project.lockjar_dsl
42
- # add buildr repos
43
- repositories.remote.each do |repo|
44
- project.lockjar_dsl.repository repo
45
- end
46
- ::LockJar.lock( project.lockjar_dsl, :lockfile => Buildr.project_to_lockfile(project) )
47
- end
48
- end
49
- end
50
- end
51
-
52
- module LockJar
53
- module ProjectExtension
54
- include Extension
55
-
56
- def lock_jar( &blk )
57
- @lockjar_dsl = ::LockJar::Domain::Dsl.create(&blk)
58
-
59
- unless Buildr.global_lockjar_dsl.nil?
60
- @lockjar_dsl.merge( Buildr.global_lockjar_dsl )
61
- end
62
- end
63
-
64
- def lock_jars( *args )
65
- lockfile = Buildr.project_to_lockfile(project)
66
- opts = {}
67
- groups = ['default']
68
-
69
- args.each do |arg|
70
- if arg.is_a?(Hash)
71
- opts.merge!( arg )
72
- elsif arg.is_a?( String )
73
- lockfile = arg
74
- elsif arg.is_a?( Array )
75
- groups = arg
76
- end
77
- end
78
-
79
- ::LockJar.list( lockfile, groups, opts )
80
- end
81
-
82
- def lockjar_dsl
83
- @lockjar_dsl || Buildr.global_lockjar_dsl
84
- end
85
-
86
- after_define do |project|
87
- task :compile => 'lock_jar:compile'
88
- task 'test:compile' => 'lock_jar:test:compile'
89
-
90
- task 'eclipse' => 'lock_jar:eclipse'
91
-
92
- namespace "lock_jar" do
93
- desc "Lock dependencies to JarFile"
94
- task("lock") do
95
- dsl = project.lockjar_dsl
96
- if dsl
97
- # add buildr repos
98
- repositories.remote do |repo|
99
- puts repo
100
- dsl.repository repo
101
- end
102
- ::LockJar.lock( dsl, :lockfile => "#{project.name}.lock" )
103
- else
104
- # XXX: output that there were no dependencies to lock
105
- puts "No lock_jar dependencies to lock for #{project.name}"
106
- end
107
- end
108
-
109
- task("compile") do
110
- if project.lockjar_dsl && !File.exists?( Buildr.project_to_lockfile(project) )
111
- raise "#{project.name}.lock does not exist, run #{project.name}:lockjar:lock first"
112
- end
113
- jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['default'] )
114
- project.compile.with( jars )
115
- end
116
-
117
- task("test:compile") do
118
- if project.lockjar_dsl && !File.exists?( Buildr.project_to_lockfile(project) )
119
- raise "#{Buildr.project_to_lockfile(project)} does not exist, run #{project.name}:lockjar:lock first"
120
- end
121
- jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['test'] )
122
-
123
- project.test.compile.with( jars )
124
- project.test.with( jars )
125
- end
126
-
127
- task("eclipse") do
128
- if project.lockjar_dsl && !File.exists?( Buildr.project_to_lockfile(project) )
129
- raise "#{Buildr.project_to_lockfile(project)} does not exist, run #{project.name}:lockjar:lock first"
130
- end
131
- jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['default'] )
132
- project.compile.with( jars )
133
-
134
- jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['test'] )
135
- project.test.compile.with( jars )
136
- end
137
- end
138
- end
139
- end
140
- end
141
- end
142
-
143
- class Buildr::Project
144
- include Buildr::LockJar::ProjectExtension
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
+ require 'lock_jar'
17
+ require 'lock_jar/domain/dsl'
18
+
19
+ module Buildr
20
+
21
+ @@global_lockjar_dsl = nil
22
+
23
+ class << self
24
+ def project_to_lockfile( project )
25
+ "#{project.name.gsub(/:/,'-')}.lock"
26
+ end
27
+
28
+ def global_lockjar_dsl
29
+ @@global_lockjar_dsl
30
+ end
31
+ end
32
+
33
+ def lock_jar( &blk )
34
+ @@global_lockjar_dsl = ::LockJar::Domain::Dsl.create(&blk)
35
+ end
36
+
37
+ namespace "lock_jar" do
38
+ desc "Lock dependencies for each project"
39
+ task("lock") do
40
+ projects.each do |project|
41
+ if project.lockjar_dsl
42
+ # add buildr repos
43
+ repositories.remote.each do |repo|
44
+ project.lockjar_dsl.repository repo
45
+ end
46
+ ::LockJar.lock( project.lockjar_dsl, :lockfile => Buildr.project_to_lockfile(project) )
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ module LockJar
53
+ module ProjectExtension
54
+ include Extension
55
+
56
+ def lock_jar( &blk )
57
+ @lockjar_dsl = ::LockJar::Domain::Dsl.create(&blk)
58
+
59
+ unless Buildr.global_lockjar_dsl.nil?
60
+ @lockjar_dsl.merge( Buildr.global_lockjar_dsl )
61
+ end
62
+ end
63
+
64
+ def lock_jars( *args )
65
+ lockfile = Buildr.project_to_lockfile(project)
66
+ opts = {}
67
+ groups = ['default']
68
+
69
+ args.each do |arg|
70
+ if arg.is_a?(Hash)
71
+ opts.merge!( arg )
72
+ elsif arg.is_a?( String )
73
+ lockfile = arg
74
+ elsif arg.is_a?( Array )
75
+ groups = arg
76
+ end
77
+ end
78
+
79
+ ::LockJar.list( lockfile, groups, opts )
80
+ end
81
+
82
+ def lockjar_dsl
83
+ @lockjar_dsl || Buildr.global_lockjar_dsl
84
+ end
85
+
86
+ after_define do |project|
87
+ task :compile => 'lock_jar:compile'
88
+ task 'test:compile' => 'lock_jar:test:compile'
89
+
90
+ task 'eclipse' => 'lock_jar:eclipse'
91
+
92
+ namespace "lock_jar" do
93
+ desc "Lock dependencies to JarFile"
94
+ task("lock") do
95
+ dsl = project.lockjar_dsl
96
+ if dsl
97
+ # add buildr repos
98
+ repositories.remote do |repo|
99
+ puts repo
100
+ dsl.repository repo
101
+ end
102
+ ::LockJar.lock( dsl, :lockfile => "#{project.name}.lock" )
103
+ else
104
+ # XXX: output that there were no dependencies to lock
105
+ puts "No lock_jar dependencies to lock for #{project.name}"
106
+ end
107
+ end
108
+
109
+ task("compile") do
110
+ if project.lockjar_dsl && !File.exists?( Buildr.project_to_lockfile(project) )
111
+ raise "#{project.name}.lock does not exist, run #{project.name}:lockjar:lock first"
112
+ end
113
+ jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['default'] )
114
+ project.compile.with( jars )
115
+ end
116
+
117
+ task("test:compile") do
118
+ if project.lockjar_dsl && !File.exists?( Buildr.project_to_lockfile(project) )
119
+ raise "#{Buildr.project_to_lockfile(project)} does not exist, run #{project.name}:lockjar:lock first"
120
+ end
121
+ jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['test'] )
122
+
123
+ project.test.compile.with( jars )
124
+ project.test.with( jars )
125
+ end
126
+
127
+ task("eclipse") do
128
+ if project.lockjar_dsl && !File.exists?( Buildr.project_to_lockfile(project) )
129
+ raise "#{Buildr.project_to_lockfile(project)} does not exist, run #{project.name}:lockjar:lock first"
130
+ end
131
+ jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['default'] )
132
+ project.compile.with( jars )
133
+
134
+ jars = ::LockJar.list( Buildr.project_to_lockfile(project), ['test'] )
135
+ project.test.compile.with( jars )
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
142
+
143
+ class Buildr::Project
144
+ include Buildr::LockJar::ProjectExtension
145
145
  end