Class: Buildr::IntellijIdea::IdeaModule
- Defined in:
- lib/buildr/ide/idea.rb
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
-
#facets ⇒ Object
readonly
Returns the value of attribute facets.
-
#group ⇒ Object
Returns the value of attribute group.
- #jdk_version ⇒ Object
- #main_output_dir ⇒ Object
- #test_output_dir ⇒ Object
-
#type ⇒ Object
Returns the value of attribute type.
Attributes inherited from IdeaFile
#buildr_project, #id, #local_repository_env_override, #prefix, #suffix, #template
Instance Method Summary collapse
- #add_ejb_facet(options = {}) ⇒ Object
- #add_facet(name, type) ⇒ Object
- #add_gwt_facet(modules = {}, options = {}) ⇒ Object
- #add_jpa_facet(options = {}) ⇒ Object
- #add_jruby_facet(options = {}) ⇒ Object
- #add_web_facet(options = {}) ⇒ Object
- #buildr_project=(buildr_project) ⇒ Object
- #excluded_directories ⇒ Object
- #extension ⇒ Object
-
#initialize ⇒ IdeaModule
constructor
A new instance of IdeaModule.
- #main_dependencies ⇒ Object
- #main_generated_resource_directories ⇒ Object
- #main_generated_source_directories ⇒ Object
- #main_resource_directories ⇒ Object
- #main_source_directories ⇒ Object
- #skip_content! ⇒ Object
- #skip_content? ⇒ Boolean
- #test_dependencies ⇒ Object
- #test_generated_resource_directories ⇒ Object
- #test_generated_source_directories ⇒ Object
- #test_resource_directories ⇒ Object
- #test_source_directories ⇒ Object
Methods inherited from IdeaFile
#add_component, #add_component_from_artifact, #add_component_from_file, #filename, #name, #write
Constructor Details
#initialize ⇒ IdeaModule
Returns a new instance of IdeaModule.
195 196 197 198 |
# File 'lib/buildr/ide/idea.rb', line 195 def initialize super() @type = DEFAULT_TYPE end |
Instance Attribute Details
#facets ⇒ Object (readonly)
Returns the value of attribute facets.
192 193 194 |
# File 'lib/buildr/ide/idea.rb', line 192 def facets @facets end |
#group ⇒ Object
Returns the value of attribute group.
191 192 193 |
# File 'lib/buildr/ide/idea.rb', line 191 def group @group end |
#jdk_version ⇒ Object
207 208 209 |
# File 'lib/buildr/ide/idea.rb', line 207 def jdk_version @jdk_version || buildr_project.compile..source || '1.7' end |
#main_output_dir ⇒ Object
259 260 261 |
# File 'lib/buildr/ide/idea.rb', line 259 def main_output_dir @main_output_dir ||= buildr_project._(:target, :main, :idea, :classes) end |
#test_output_dir ⇒ Object
265 266 267 |
# File 'lib/buildr/ide/idea.rb', line 265 def test_output_dir @test_output_dir ||= buildr_project._(:target, :test, :idea, :classes) end |
#type ⇒ Object
Returns the value of attribute type.
190 191 192 |
# File 'lib/buildr/ide/idea.rb', line 190 def type @type end |
Instance Method Details
#add_ejb_facet(options = {}) ⇒ Object
442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 |
# File 'lib/buildr/ide/idea.rb', line 442 def add_ejb_facet( = {}) name = [:name] || 'EJB' default_ejb_roots = [buildr_project.iml.main_source_directories, buildr_project.compile.sources, buildr_project.resources.sources].flatten.compact ejb_roots = [:ejb_roots] || default_ejb_roots default_deployment_descriptors = [] ['ejb-jar.xml', 'glassfish-ejb-jar.xml', 'ibm-ejb-jar-bnd.xml', 'ibm-ejb-jar-ext-pme.xml', 'ibm-ejb-jar-ext.xml', 'jboss.xml', 'jbosscmp-jdbc.xml', 'openejb-jar.xml', 'sun-cmp-mapping.xml', 'sun-ejb-jar.xml', 'weblogic-cmp-rdbms-jar.xml', 'weblogic-ejb-jar.xml']. each do |descriptor| ejb_roots.each do |path| d = "#{path}/WEB-INF/#{descriptor}" default_deployment_descriptors << d if File.exist?(d) d = "#{path}/META-INF/#{descriptor}" default_deployment_descriptors << d if File.exist?(d) end end deployment_descriptors = [:deployment_descriptors] || default_deployment_descriptors add_facet(name, 'ejb') do |facet| facet.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.ejbRoots do |e| ejb_roots.each do |ejb_root| e.root :url => file_path(ejb_root) end end end end end |
#add_facet(name, type) ⇒ Object
277 278 279 280 281 282 283 |
# File 'lib/buildr/ide/idea.rb', line 277 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
293 294 295 296 297 298 299 300 301 302 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 |
# File 'lib/buildr/ide/idea.rb', line 293 def add_gwt_facet(modules = {}, = {}) name = [:name] || 'GWT' detected_gwt_version = nil if [:gwt_dev_artifact] a = Buildr.artifact([: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([: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
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 433 434 435 436 437 438 439 440 |
# File 'lib/buildr/ide/idea.rb', line 395 def add_jpa_facet( = {}) name = [:name] || 'JPA' source_roots = [buildr_project.iml.main_source_directories, buildr_project.compile.sources, buildr_project.resources.sources].flatten.compact default_deployment_descriptors = [] ['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 = [:deployment_descriptors] || default_deployment_descriptors factory_entry = [:factory_entry] || buildr_project.name.to_s validation_enabled = [:validation_enabled].nil? ? true : [:validation_enabled] if [:provider_enabled] provider = [: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_jruby_facet(options = {}) ⇒ Object
380 381 382 383 384 385 386 387 388 389 390 391 392 393 |
# File 'lib/buildr/ide/idea.rb', line 380 def add_jruby_facet( = {}) name = [:name] || 'JRuby' ruby_version_file = buildr_project._('.ruby-version') default_jruby_version = File.exist?(ruby_version_file) ? "rbenv: #{IO.read(ruby_version_file).strip}" : 'jruby-1.6.7.2' jruby_version = [:jruby_version] || default_jruby_version add_facet(name, 'JRUBY') do |f| f.configuration do |c| c.JRUBY_FACET_CONFIG_ID :NAME => 'JRUBY_SDK_NAME', :VALUE => jruby_version c.LOAD_PATH :number => '0' c.I18N_FOLDERS :number => '0' end end end |
#add_web_facet(options = {}) ⇒ Object
338 339 340 341 342 343 344 345 346 347 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 |
# File 'lib/buildr/ide/idea.rb', line 338 def add_web_facet( = {}) name = [: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 = [:webroots] || default_webroots default_deployment_descriptors = [] ['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 = [: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 = [:enable_jsf].nil? ? default_enable_jsf : [: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 |
#buildr_project=(buildr_project) ⇒ Object
200 201 202 203 204 205 |
# File 'lib/buildr/ide/idea.rb', line 200 def buildr_project=(buildr_project) @id = nil @facets = [] @skip_content = false @buildr_project = buildr_project end |
#excluded_directories ⇒ Object
247 248 249 250 251 252 253 254 255 |
# File 'lib/buildr/ide/idea.rb', line 247 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
211 212 213 |
# File 'lib/buildr/ide/idea.rb', line 211 def extension 'iml' end |
#main_dependencies ⇒ Object
269 270 271 |
# File 'lib/buildr/ide/idea.rb', line 269 def main_dependencies @main_dependencies ||= buildr_project.compile.dependencies.dup end |
#main_generated_resource_directories ⇒ Object
227 228 229 |
# File 'lib/buildr/ide/idea.rb', line 227 def main_generated_resource_directories @main_generated_resource_directories ||= [] end |
#main_generated_source_directories ⇒ Object
223 224 225 |
# File 'lib/buildr/ide/idea.rb', line 223 def main_generated_source_directories @main_generated_source_directories ||= [] end |
#main_resource_directories ⇒ Object
219 220 221 |
# File 'lib/buildr/ide/idea.rb', line 219 def main_resource_directories @main_resource_directories ||= [buildr_project.resources.sources].flatten.compact end |
#main_source_directories ⇒ Object
215 216 217 |
# File 'lib/buildr/ide/idea.rb', line 215 def main_source_directories @main_source_directories ||= [buildr_project.compile.sources].flatten.compact end |
#skip_content! ⇒ Object
289 290 291 |
# File 'lib/buildr/ide/idea.rb', line 289 def skip_content! @skip_content = true end |
#skip_content? ⇒ Boolean
285 286 287 |
# File 'lib/buildr/ide/idea.rb', line 285 def skip_content? !!@skip_content end |
#test_dependencies ⇒ Object
273 274 275 |
# File 'lib/buildr/ide/idea.rb', line 273 def test_dependencies @test_dependencies ||= buildr_project.test.compile.dependencies.dup end |
#test_generated_resource_directories ⇒ Object
243 244 245 |
# File 'lib/buildr/ide/idea.rb', line 243 def test_generated_resource_directories @test_generated_resource_directories ||= [] end |
#test_generated_source_directories ⇒ Object
239 240 241 |
# File 'lib/buildr/ide/idea.rb', line 239 def test_generated_source_directories @test_generated_source_directories ||= [] end |
#test_resource_directories ⇒ Object
235 236 237 |
# File 'lib/buildr/ide/idea.rb', line 235 def test_resource_directories @test_resource_directories ||= [buildr_project.test.resources.sources].flatten.compact end |
#test_source_directories ⇒ Object
231 232 233 |
# File 'lib/buildr/ide/idea.rb', line 231 def test_source_directories @test_source_directories ||= [buildr_project.test.compile.sources].flatten.compact end |