module Buildr::JaxbXjc
Public Class Methods
dependencies()
click to toggle source
The specs for requirements
# File addon/buildr/jaxb_xjc.rb, line 25 def dependencies [ "javax.xml.bind:jaxb-api:jar:#{jaxb_version}", "com.sun.xml.bind:jaxb-impl:jar:#{jaxb_version}", "com.sun.xml.bind:jaxb-xjc:jar:#{jaxb_version}" ] end
jaxb_version()
click to toggle source
# File addon/buildr/jaxb_xjc.rb, line 20 def jaxb_version '2.2.1' end
remote_repository()
click to toggle source
Repositories
containing the requirements
# File addon/buildr/jaxb_xjc.rb, line 34 def remote_repository 'http://download.java.net/maven/2' end
xjc(*args)
click to toggle source
# File addon/buildr/jaxb_xjc.rb, line 38 def xjc(*args) cp = Buildr.artifacts(self.dependencies).each(&:invoke).map(&:to_s) Java::Commands.java 'com.sun.tools.xjc.XJCFacade', *(args + [{ :classpath => cp }]) end
Public Instance Methods
compile_jaxb(files, *args)
click to toggle source
# File addon/buildr/jaxb_xjc.rb, line 44 def compile_jaxb(files, *args) options = Hash === args.last ? args.pop.dup : {} rake_check_options options, :directory, :keep_content, :package, :id args = args.dup files = Array === files ? files.flatten : [files] target_dir = File.expand_path(options[:directory] || _(:target, :generated, :jaxb, 'main/java')) timestamp_file = File.expand_path("#{target_dir}/jaxb-#{options[:id] || 1}.cache") project.iml.main_generated_source_directories << target_dir if project.iml? file(target_dir => timestamp_file) file(timestamp_file => files.flatten) do |task| rm_rf target_dir unless options[:keep_content] mkdir_p target_dir args << '-d' << target_dir args << '-p' << options[:package] if options[:package] args += files.collect{|f| f.to_s} JaxbXjc.xjc args touch timestamp_file end target_dir end