Class: JavaClass::Classpath::MavenClasspath
- Inherits:
-
CompositeClasspath
- Object
- FileClasspath
- CompositeClasspath
- JavaClass::Classpath::MavenClasspath
- Defined in:
- lib/javaclass/classpath/maven_classpath.rb
Overview
A Maven folder structure aware classpath. Maven submodules are supported.
- Author
-
Peter Kofler
Constant Summary collapse
- POM_XML =
'pom.xml'
Class Method Summary collapse
-
.valid_location?(file) ⇒ Boolean
Check if the file is a valid location for a Maven classpath.
Instance Method Summary collapse
-
#initialize(folder) ⇒ MavenClasspath
constructor
Create a classpath for a Maven base project folder.
Methods inherited from CompositeClasspath
#__old__add_element__, #accessed, #add_element, #add_file_name, #all_accessed, #count, #elements, #includes?, #load_binary, #mark_accessed, #names, #reset_access, #to_s
Methods inherited from FileClasspath
#==, #additional_classpath, #elements, #jar?, #to_key, #to_s
Constructor Details
#initialize(folder) ⇒ MavenClasspath
Create a classpath for a Maven base project folder
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/javaclass/classpath/maven_classpath.rb', line 18 def initialize(folder) unless MavenClasspath::valid_location?(folder) raise IOError, "folder #{folder} not a Maven project" end pom = File.join(folder, POM_XML) super(pom) add_if_exist(File.join(folder, 'target/classes')) add_if_exist(File.join(folder, 'target/test-classes')) # look for submodules Dir.entries(folder).each do |dir| next if dir =~ /^(?:\.|\.\.|src|target|pom.xml|\.settings)$/ folder = File.join(folder, dir) add_element(MavenClasspath.new(folder)) if MavenClasspath::valid_location?(folder) end end |
Class Method Details
.valid_location?(file) ⇒ Boolean
Check if the file is a valid location for a Maven classpath.
13 14 15 |
# File 'lib/javaclass/classpath/maven_classpath.rb', line 13 def self.valid_location?(file) FileTest.exist?(file) && FileTest.directory?(file) && FileTest.exist?(File.join(file, POM_XML)) end |