Class: Buildr::IntellijIdea::IdeaModule
Overview
IdeaModule represents an .iml file
Constant Summary
collapse
- DEFAULT_TYPE =
'JAVA_MODULE'
Constants inherited
from IdeaFile
Buildr::IntellijIdea::IdeaFile::DEFAULT_LOCAL_REPOSITORY_ENV_OVERRIDE, Buildr::IntellijIdea::IdeaFile::DEFAULT_PREFIX, Buildr::IntellijIdea::IdeaFile::DEFAULT_SUFFIX
Instance Attribute Summary collapse
Attributes inherited from IdeaFile
#buildr_project, #id, #local_repository_env_override, #prefix, #suffix, #template
Instance Method Summary
collapse
Methods inherited from IdeaFile
#add_component, #add_component_from_artifact, #add_component_from_file, #add_component_in_lambda, #filename, #name, #write
Constructor Details
Returns a new instance of IdeaModule.
201
202
203
204
|
# File 'lib/buildr/ide/idea.rb', line 201
def initialize
super()
@type = DEFAULT_TYPE
end
|
Instance Attribute Details
Returns the value of attribute facets.
198
199
200
|
# File 'lib/buildr/ide/idea.rb', line 198
def facets
@facets
end
|
Returns the value of attribute group.
197
198
199
|
# File 'lib/buildr/ide/idea.rb', line 197
def group
@group
end
|
#jdk_version ⇒ Object
213
214
215
|
# File 'lib/buildr/ide/idea.rb', line 213
def jdk_version
@jdk_version || buildr_project.compile.options.source || '1.7'
end
|
#main_output_dir ⇒ Object
269
270
271
|
# File 'lib/buildr/ide/idea.rb', line 269
def main_output_dir
@main_output_dir ||= buildr_project._(:target, :main, :idea, :classes)
end
|
#test_output_dir ⇒ Object
275
276
277
|
# File 'lib/buildr/ide/idea.rb', line 275
def test_output_dir
@test_output_dir ||= buildr_project._(:target, :test, :idea, :classes)
end
|
Returns the value of attribute type.
196
197
198
|
# File 'lib/buildr/ide/idea.rb', line 196
def type
@type
end
|
Instance Method Details
#add_facet(name, type) ⇒ Object
287
288
289
290
291
292
293
|
# File 'lib/buildr/ide/idea.rb', line 287
def add_facet(name, type)
add_to_composite_component(self.facets) do |xml|
xml.facet(:name => name, :type => type) do |xml|
yield xml if block_given?
end
end
end
|
#add_gwt_facet(modules = {}, options = {}) ⇒ Object
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
# File 'lib/buildr/ide/idea.rb', line 303
def add_gwt_facet(modules = {}, options = {})
name = options[:name] || 'GWT'
detected_gwt_version = nil
if options[:gwt_dev_artifact]
a = Buildr.artifact(options[:gwt_dev_artifact])
a.invoke
detected_gwt_version = a.to_s
end
settings =
{
:webFacet => 'Web',
:compilerMaxHeapSize => '512',
:compilerParameters => '-draftCompile -localWorkers 2 -strict',
:gwtScriptOutputStyle => 'PRETTY'
}.merge(options[:settings] || {})
buildr_project.compile.dependencies.each do |d|
if d.to_s =~ /\/com\/google\/gwt\/gwt-dev\/(.*)\//
detected_gwt_version = d.to_s
break
end
end unless detected_gwt_version
if detected_gwt_version
settings[:gwtSdkUrl] = resolve_path(File.dirname(detected_gwt_version))
settings[:gwtSdkType] = 'maven'
else
settings[:gwtSdkUrl] = 'file://$GWT_TOOLS$'
end
add_facet(name, 'gwt') do |f|
f.configuration do |c|
settings.each_pair do |k, v|
c.setting :name => k.to_s, :value => v.to_s
end
c.packaging do |d|
modules.each_pair do |k, v|
d.module :name => k, :enabled => v
end
end
end
end
end
|
#add_jpa_facet(options = {}) ⇒ Object
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
|
# File 'lib/buildr/ide/idea.rb', line 387
def add_jpa_facet(options = {})
name = options[:name] || 'JPA'
source_roots = [buildr_project.iml.main_source_directories, buildr_project.compile.sources, buildr_project.resources.sources].flatten.compact
default_deployment_descriptors = []
%w[orm.xml persistence.xml].
each do |descriptor|
source_roots.each do |path|
d = "#{path}/META-INF/#{descriptor}"
default_deployment_descriptors << d if File.exist?(d)
end
end
deployment_descriptors = options[:deployment_descriptors] || default_deployment_descriptors
factory_entry = options[:factory_entry] || buildr_project.name.to_s
validation_enabled = options[:validation_enabled].nil? ? true : options[:validation_enabled]
if options[:provider_enabled]
provider = options[:provider_enabled]
else
provider = nil
{ 'org.hibernate.ejb.HibernatePersistence' => 'Hibernate',
'org.eclipse.persistence.jpa.PersistenceProvider' => 'EclipseLink' }.
each_pair do |match, candidate_provider|
deployment_descriptors.each do |descriptor|
if File.exist?(descriptor) && /#{Regexp.escape(match)}/ =~ IO.read(descriptor)
provider = candidate_provider
end
end
end
end
add_facet(name, 'jpa') do |f|
f.configuration do |c|
if provider
c.setting :name => 'validation-enabled', :value => validation_enabled
c.setting :name => 'provider-name', :value => provider
end
c.tag!('datasource-mapping') do |ds|
ds.tag!('factory-entry', :name => factory_entry)
end
deployment_descriptors.each do |descriptor|
c.deploymentDescriptor :name => File.basename(descriptor), :url => file_path(descriptor)
end
end
end
end
|
#add_web_facet(options = {}) ⇒ Object
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
|
# File 'lib/buildr/ide/idea.rb', line 348
def add_web_facet(options = {})
name = options[:name] || 'Web'
default_webroots = {}
default_webroots[buildr_project._(:source, :main, :webapp)] = '/' if File.exist?(buildr_project._(:source, :main, :webapp))
buildr_project.assets.paths.each { |p| default_webroots[p] = '/' }
webroots = options[:webroots] || default_webroots
default_deployment_descriptors = []
%w(web.xml sun-web.xml glassfish-web.xml jetty-web.xml geronimo-web.xml context.xml weblogic.xml jboss-deployment-structure.xml jboss-web.xml ibm-web-bnd.xml ibm-web-ext.xml ibm-web-ext-pme.xml).
each do |descriptor|
webroots.each_pair do |path, relative_url|
next unless relative_url == '/'
d = "#{path}/WEB-INF/#{descriptor}"
default_deployment_descriptors << d if File.exist?(d)
end
end
deployment_descriptors = options[:deployment_descriptors] || default_deployment_descriptors
add_facet(name, 'web') do |f|
f.configuration do |c|
c.descriptors do |d|
deployment_descriptors.each do |deployment_descriptor|
d.deploymentDescriptor :name => File.basename(deployment_descriptor), :url => file_path(deployment_descriptor)
end
end
c.webroots do |w|
webroots.each_pair do |webroot, relative_url|
w.root :url => file_path(webroot), :relative => relative_url
end
end
end
default_enable_jsf = webroots.keys.any? { |webroot| File.exist?("#{webroot}/WEB-INF/faces-config.xml") }
enable_jsf = options[:enable_jsf].nil? ? default_enable_jsf : options[:enable_jsf]
enable_jsf = false if buildr_project.root_project.ipr? && buildr_project.root_project.ipr.version >= '13'
f.facet(:type => 'jsf', :name => 'JSF') do |jsf|
jsf.configuration
end if enable_jsf
end
end
|
#annotation_paths ⇒ Object
221
222
223
|
# File 'lib/buildr/ide/idea.rb', line 221
def annotation_paths
@annotation_paths ||= [buildr_project._(:source, :main, :annotations)].select { |p| File.exist?(p) }
end
|
#buildr_project=(buildr_project) ⇒ Object
206
207
208
209
210
211
|
# File 'lib/buildr/ide/idea.rb', line 206
def buildr_project=(buildr_project)
@id = nil
@facets = []
@skip_content = false
@buildr_project = buildr_project
end
|
#excluded_directories ⇒ Object
257
258
259
260
261
262
263
264
265
|
# File 'lib/buildr/ide/idea.rb', line 257
def excluded_directories
@excluded_directories ||= [
buildr_project.resources.target,
buildr_project.test.resources.target,
buildr_project.path_to(:target, :main),
buildr_project.path_to(:target, :test),
buildr_project.path_to(:reports)
].flatten.compact
end
|
#extension ⇒ Object
217
218
219
|
# File 'lib/buildr/ide/idea.rb', line 217
def extension
'iml'
end
|
#main_dependencies ⇒ Object
279
280
281
|
# File 'lib/buildr/ide/idea.rb', line 279
def main_dependencies
@main_dependencies ||= buildr_project.compile.dependencies.dup
end
|
#main_generated_resource_directories ⇒ Object
237
238
239
|
# File 'lib/buildr/ide/idea.rb', line 237
def main_generated_resource_directories
@main_generated_resource_directories ||= []
end
|
#main_generated_source_directories ⇒ Object
233
234
235
|
# File 'lib/buildr/ide/idea.rb', line 233
def main_generated_source_directories
@main_generated_source_directories ||= []
end
|
#main_resource_directories ⇒ Object
229
230
231
|
# File 'lib/buildr/ide/idea.rb', line 229
def main_resource_directories
@main_resource_directories ||= [buildr_project.resources.sources].flatten.compact
end
|
#main_source_directories ⇒ Object
225
226
227
|
# File 'lib/buildr/ide/idea.rb', line 225
def main_source_directories
@main_source_directories ||= [buildr_project.compile.sources].flatten.compact
end
|
#skip_content! ⇒ Object
299
300
301
|
# File 'lib/buildr/ide/idea.rb', line 299
def skip_content!
@skip_content = true
end
|
#skip_content? ⇒ Boolean
295
296
297
|
# File 'lib/buildr/ide/idea.rb', line 295
def skip_content?
!!@skip_content
end
|
#test_dependencies ⇒ Object
283
284
285
|
# File 'lib/buildr/ide/idea.rb', line 283
def test_dependencies
@test_dependencies ||= buildr_project.test.compile.dependencies.dup
end
|
#test_generated_resource_directories ⇒ Object
253
254
255
|
# File 'lib/buildr/ide/idea.rb', line 253
def test_generated_resource_directories
@test_generated_resource_directories ||= []
end
|
#test_generated_source_directories ⇒ Object
249
250
251
|
# File 'lib/buildr/ide/idea.rb', line 249
def test_generated_source_directories
@test_generated_source_directories ||= []
end
|
#test_resource_directories ⇒ Object
245
246
247
|
# File 'lib/buildr/ide/idea.rb', line 245
def test_resource_directories
@test_resource_directories ||= [buildr_project.test.resources.sources].flatten.compact
end
|
#test_source_directories ⇒ Object
241
242
243
|
# File 'lib/buildr/ide/idea.rb', line 241
def test_source_directories
@test_source_directories ||= [buildr_project.test.compile.sources].flatten.compact
end
|