buildr-iidea 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ 0.0.8 (Pending)
2
+
1
3
  0.0.7 (July 7, 2010)
2
4
  * Fixed: Regression involving source and exclude paths for nested projects.
3
5
 
@@ -16,6 +18,8 @@
16
18
  * Fixed: A project which is tagged with no_iml may have a child with an IML.
17
19
  * Changed: Directories that are outside content dir are no longer excluded in the content
18
20
  section.
21
+ * Added: Automatic inclusion of source for IML dependencies if already
22
+ downloaded.
19
23
 
20
24
  0.0.4 (May 29, 2010)
21
25
  * Added: Ability to disable ipr generation using project.no_ipr
data/Rakefile CHANGED
@@ -2,6 +2,7 @@ require 'rake'
2
2
  require 'rake/rdoctask'
3
3
  require 'rake/gempackagetask'
4
4
  require 'spec/rake/spectask'
5
+ require File.expand_path("../lib/buildr/intellij_idea/version", __FILE__)
5
6
 
6
7
  gem_spec = Gem::Specification.load(File.expand_path('buildr-iidea.gemspec', File.dirname(__FILE__)))
7
8
 
@@ -21,4 +22,11 @@ Rake::RDocTask.new :rdoc do |rdoc|
21
22
  rdoc.rdoc_files.include gem_spec.extra_rdoc_files
22
23
  end
23
24
 
24
- Rake::GemPackageTask.new(gem_spec).define
25
+ Rake::GemPackageTask.new(gem_spec).define
26
+
27
+ namespace :deploy do
28
+ task :tag do
29
+ system("git tag -a #{Buildr::IntellijIdea::Version::STRING} -m 'Released #{Buildr::IntellijIdea::Version::STRING}'")
30
+ info "Tagged locally. Push if you're sure."
31
+ end
32
+ end
@@ -131,19 +131,22 @@ module Buildr
131
131
  generate_compile_output(xml)
132
132
  generate_content(xml) unless skip_content?
133
133
  generate_initial_order_entries(xml)
134
+ project_dependencies = []
134
135
 
135
136
  # Note: Use the test classpath since IDEA compiles both "main" and "test" classes using the same classpath
136
137
  self.test_dependencies.each do |dependency_path, export, source_path|
137
138
  project_for_dependency = Buildr.projects.detect do |project|
138
- project.packages.detect { |pkg| pkg.to_s == dependency_path }
139
+ [project.packages, project.compile.target, project.test.compile.target].flatten.
140
+ detect { |proj_art| proj_art.to_s == dependency_path }
139
141
  end
140
142
  if project_for_dependency
141
- if project_for_dependency.iml?
143
+ if project_for_dependency.iml? && !project_dependencies.include?(project_for_dependency)
142
144
  generate_project_dependency( xml, project_for_dependency.iml.name, export )
143
145
  end
146
+ project_dependencies << project_for_dependency
144
147
  next
145
148
  else
146
- generate_module_lib(xml, jar_path(dependency_path), export, (source_path ? jar_path(source_path) : nil))
149
+ generate_module_lib(xml, url_for_path(dependency_path), export, (source_path ? url_for_path(source_path) : nil))
147
150
  end
148
151
  end
149
152
 
@@ -163,6 +166,14 @@ module Buildr
163
166
  "file://#{resolve_path(path)}"
164
167
  end
165
168
 
169
+ def url_for_path(path)
170
+ if path =~ /jar$/i
171
+ jar_path(path)
172
+ else
173
+ file_path(path)
174
+ end
175
+ end
176
+
166
177
  def resolve_path(path)
167
178
  m2repo = Buildr::Repositories.instance.local
168
179
  if path.to_s.index(m2repo) == 0 && !self.local_repository_env_override.nil?
@@ -3,7 +3,7 @@ module Buildr
3
3
  class Version
4
4
  MAJOR = "0"
5
5
  MINOR = "0"
6
- MICRO = "7"
6
+ MICRO = "8"
7
7
 
8
8
  STRING = "#{MAJOR}.#{MINOR}.#{MICRO}"
9
9
  end
@@ -191,4 +191,53 @@ describe "iidea:generate" do
191
191
  end
192
192
  end
193
193
  end
194
+
195
+ describe "with extensive intermodule dependencies" do
196
+ before do
197
+ mkdir_p 'foo/src/main/resources'
198
+ mkdir_p 'foo/src/main/java/foo'
199
+ touch 'foo/src/main/java/foo/Foo.java' # needed so that buildr will treat as a java project
200
+ define "root" do
201
+ repositories.remote << 'http://mirrors.ibiblio.org/pub/mirrors/maven2/'
202
+ project.version = "2.5.2"
203
+ define 'foo' do
204
+ resources.from _(:source, :main, :resources)
205
+ compile.with 'org.slf4j:slf4j-api:jar:1.5.11'
206
+ test.using(:junit)
207
+ package(:jar)
208
+ end
209
+
210
+ define 'bar' do
211
+ # internally transitive dependencies on foo, both runtime and test
212
+ compile.with project('root:foo'), project('root:foo').compile.dependencies
213
+ test.using(:junit).with [project('root:foo').test.compile.target,
214
+ project('root:foo').test.resources.target,
215
+ project('root:foo').test.compile.dependencies].compact
216
+ package(:jar)
217
+ end
218
+ end
219
+
220
+ invoke_generate_task
221
+ @bar_iml = xml_document(project('root:bar')._('bar.iml'))
222
+ @bar_lib_urls = @bar_iml.get_elements("//orderEntry[@type='module-library']/library/CLASSES/root").collect do |root|
223
+ root.attribute('url').to_s
224
+ end
225
+ end
226
+
227
+ it "depends on the associated module exactly once" do
228
+ @bar_iml.should have_nodes("//orderEntry[@type='module', @module-name='foo']", 1)
229
+ end
230
+
231
+ it "does not depend on the other project's packaged JAR" do
232
+ @bar_lib_urls.grep(%r{#{project('root:foo').packages.first}}).should == []
233
+ end
234
+
235
+ it "does not depend on the the other project's target/classes directory" do
236
+ @bar_lib_urls.grep(%r{foo/target/classes}).should == []
237
+ end
238
+
239
+ it "depends on the the other project's target/resources directory" do
240
+ @bar_lib_urls.grep(%r{file://\$MODULE_DIR\$/../foo/target/resources}).size.should == 1
241
+ end
242
+ end
194
243
  end
data/spec/buildr_dir ADDED
@@ -0,0 +1 @@
1
+ /Users/rsutphin/buildr/svn/trunk
metadata CHANGED
@@ -1,21 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildr-iidea
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease: false
5
6
  segments:
6
- - 0
7
- - 0
8
- - 7
9
- version: 0.0.7
7
+ - 0
8
+ - 0
9
+ - 8
10
+ version: 0.0.8
10
11
  platform: ruby
11
12
  authors:
12
- - Rhett Sutphin
13
- - Peter Donald
13
+ - Rhett Sutphin
14
+ - Peter Donald
14
15
  autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-07-07 00:00:00 +10:00
19
+ date: 2010-07-15 00:00:00 -05:00
19
20
  default_executable:
20
21
  dependencies: []
21
22
 
@@ -25,74 +26,77 @@ description: |
25
26
  settings of each project and extension specific settings.
26
27
 
27
28
  email:
28
- - rhett@detailedbalance.net
29
- - peter@realityforge.org
29
+ - rhett@detailedbalance.net
30
+ - peter@realityforge.org
30
31
  executables: []
31
32
 
32
33
  extensions: []
33
34
 
34
35
  extra_rdoc_files:
35
- - README.rdoc
36
- - LICENSE
37
- - NOTICE
38
- - CHANGELOG
36
+ - README.rdoc
37
+ - LICENSE
38
+ - NOTICE
39
+ - CHANGELOG
39
40
  files:
40
- - lib/buildr_iidea.rb
41
- - lib/buildr/intellij_idea/version.rb
42
- - lib/buildr/intellij_idea/idea_project.rb
43
- - lib/buildr/intellij_idea/project_extension.rb
44
- - lib/buildr/intellij_idea/idea_module.rb
45
- - lib/buildr/intellij_idea/idea_file.rb
46
- - spec/spec_helper.rb
47
- - spec/xpath_matchers.rb
48
- - spec/spec.opts
49
- - spec/buildr/intellij_idea/inform_spec.rb
50
- - spec/buildr/intellij_idea/facet_generation_spec.rb
51
- - spec/buildr/intellij_idea/project_extension_spec.rb
52
- - spec/buildr/intellij_idea/module_property_inheritance_spec.rb
53
- - spec/buildr/intellij_idea/idea_file_generation_spec.rb
54
- - spec/buildr/intellij_idea/module_defaults.rb
55
- - spec/buildr/intellij_idea/group_spec.rb
56
- - spec/buildr/intellij_idea/extra_modules_spec.rb
57
- - spec/buildr/intellij_idea/initial_components_spec.rb
58
- - spec/buildr/intellij_idea/clean_spec.rb
59
- - spec/buildr/intellij_idea/dependency_spec.rb
60
- - spec/buildr/intellij_idea/module_content_generation_spec.rb
61
- - spec/buildr/intellij_idea/template_spec.rb
62
- - buildr-iidea.gemspec
63
- - LICENSE
64
- - NOTICE
65
- - README.rdoc
66
- - CHANGELOG
67
- - Rakefile
41
+ - lib/buildr/intellij_idea/idea_file.rb
42
+ - lib/buildr/intellij_idea/idea_module.rb
43
+ - lib/buildr/intellij_idea/idea_project.rb
44
+ - lib/buildr/intellij_idea/project_extension.rb
45
+ - lib/buildr/intellij_idea/version.rb
46
+ - lib/buildr_iidea.rb
47
+ - spec/buildr/intellij_idea/clean_spec.rb
48
+ - spec/buildr/intellij_idea/dependency_spec.rb
49
+ - spec/buildr/intellij_idea/extra_modules_spec.rb
50
+ - spec/buildr/intellij_idea/facet_generation_spec.rb
51
+ - spec/buildr/intellij_idea/group_spec.rb
52
+ - spec/buildr/intellij_idea/idea_file_generation_spec.rb
53
+ - spec/buildr/intellij_idea/inform_spec.rb
54
+ - spec/buildr/intellij_idea/initial_components_spec.rb
55
+ - spec/buildr/intellij_idea/module_content_generation_spec.rb
56
+ - spec/buildr/intellij_idea/module_defaults.rb
57
+ - spec/buildr/intellij_idea/module_property_inheritance_spec.rb
58
+ - spec/buildr/intellij_idea/project_extension_spec.rb
59
+ - spec/buildr/intellij_idea/template_spec.rb
60
+ - spec/buildr_dir
61
+ - spec/spec.opts
62
+ - spec/spec_helper.rb
63
+ - spec/xpath_matchers.rb
64
+ - buildr-iidea.gemspec
65
+ - LICENSE
66
+ - NOTICE
67
+ - README.rdoc
68
+ - CHANGELOG
69
+ - Rakefile
68
70
  has_rdoc: true
69
71
  homepage: http://github.com/realityforge/buildr-iidea
70
72
  licenses: []
71
73
 
72
74
  post_install_message: Thanks for installing the Intellij IDEA extension for Buildr
73
75
  rdoc_options:
74
- - --title
75
- - buildr-iidea 0.0.7
76
- - --main
77
- - README.rdoc
76
+ - --title
77
+ - buildr-iidea 0.0.8
78
+ - --main
79
+ - README.rdoc
78
80
  require_paths:
79
- - lib
81
+ - lib
80
82
  required_ruby_version: !ruby/object:Gem::Requirement
81
83
  none: false
82
84
  requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- segments:
86
- - 0
87
- version: "0"
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
88
91
  required_rubygems_version: !ruby/object:Gem::Requirement
89
92
  none: false
90
93
  requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- segments:
94
- - 0
95
- version: "0"
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
99
+ version: "0"
96
100
  requirements: []
97
101
 
98
102
  rubyforge_project: