Changeset 5845
- Timestamp:
- 10/06/06 19:13:17
- Files:
-
- trunk/lib/apt_task.rb (modified) (2 diffs)
- trunk/lib/java_helper.rb (modified) (1 diff)
- trunk/lib/javac_task.rb (modified) (3 diffs)
- trunk/lib/javadoc_task.rb (modified) (2 diffs)
- trunk/lib/jibx_task.rb (modified) (1 diff)
- trunk/sample/Rakefile (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/apt_task.rb
r5784 r5845 5 5 6 6 # Apt helper class - uses annotation processor API to identify annotations. 7 # Based on8 # http://weblogs.java.net/blog/ss141213/archive/2005/12/how_to_automati.html9 # TODO: wrap compile/processing step in one?10 11 12 7 module Rake 13 8 class AptTask < JavacTask … … 88 83 89 84 def post_compile 90 super 85 super unless nocompile 91 86 @found_annotations.each do |name, types| 92 87 handler = @found_annotations_handler[name] trunk/lib/java_helper.rb
r5843 r5845 89 89 end 90 90 91 module ExtraArgumentTaking 92 attr_reader :extra_args 93 94 def self.append_features(base) 95 super 96 class << base 97 def create_alias_for(actual, new) 98 @@aliases ||= {} 99 @@aliases[new.to_s] = actual.to_s 100 end 101 end 102 end 103 104 def options(*args) 105 args.each {|a| self.send(a)} 106 end 107 108 def add_files(files) 109 @extra_args += files.to_a 110 end 111 112 def method_missing(symbol, *args) 113 arg = symbol.to_s.sub(/=/, "") 114 @extra_args ||= [] 115 if @@aliases && @@aliases.has_key?(arg) 116 arg = @@aliases[arg] 117 end 118 119 @extra_args << "-#{arg}" 120 @extra_args += args 121 end 122 end 91 123 92 124 class FileList trunk/lib/javac_task.rb
r5843 r5845 5 5 module Rake 6 6 class JavacTask < TaskLib 7 include JavaHelper 7 include JavaHelper, ExtraArgumentTaking 8 8 9 9 attr_accessor :name 10 10 attr_accessor :java_files 11 attr_accessor :dependencies12 attr_accessor :nowarn13 11 attr_accessor :verbose 14 12 13 create_alias_for :g, :debug 15 14 16 15 def initialize(name) 17 16 @name = name 18 @dependencies = []19 @nowarn = false20 17 @verbose = false 21 @extraargs = []22 18 yield self if block_given? 23 dependencies << java_files.dstdir24 19 define 25 20 end 26 21 27 22 def define 28 desc "compile files in #{java_files.srcdir.to_a.join(', ')}" if Rake.application.last_comment.nil? 29 #task name => dependencies + [ *java_files ] do |t| 30 task name => dependencies do |t| 23 desc "compile files in #{java_files.srcdir.to_a.join(', ')}" if Rake.application.last_comment.nil? 24 task name => java_files.dstdir do |t| 31 25 32 parms = [ "-d", java_files.dstdir ]26 parms = [ "-d", java_files.dstdir ] 33 27 parms += [ "-sourcepath", java_files.sourcepath ] unless java_files.sourcepath.nil? 34 28 35 parms << "-nowarn" if nowarn36 29 parms << "-verbose" if verbose 37 30 … … 41 34 java_files.gsub!( "/", "\\" ) if $IS_WINDOWS 42 35 43 parms += @extraargs36 parms += extra_args unless extra_args.nil? 44 37 parms += java_files 45 46 #require 'pp' 47 #pp parms 48 38 49 39 ret = 0 50 40 javacout = printWriter_to_s do |pw| 51 41 ret = compile(parms, pw) 52 42 end 53 43 54 44 raise "Compile error:\n#{javacout}" unless ret == 0 55 45 post_compile … … 58 48 end 59 49 60 61 def method_missing(symbol, *args)62 arg = symbol.to_s.sub(/=/, "")63 @extraargs << "-#{arg}"64 @extraargs += args65 end66 67 50 protected 68 51 def post_compile trunk/lib/javadoc_task.rb
r5827 r5845 4 4 module Rake 5 5 class JavaDocTask < TaskLib 6 7 # Name for task6 include ExtraArgumentTaking 7 8 8 attr_accessor :name 9 attr_accessor :sourcepath10 9 attr_accessor :dstdir 11 attr_accessor :package 12 attr_accessor :dependencies 13 attr_accessor :verbose 14 attr_accessor :links 15 10 16 11 def initialize(name = :javadoc) 17 @name = name 18 @dependencies = [] 19 @verbose = false 20 @links = [] 12 @name = name 21 13 yield self if block_given? 14 raise "need dstdir parameter" if dstdir.nil? 22 15 define 23 16 end … … 25 18 def define 26 19 desc "generate javadocs" if Rake.application.last_comment.nil? 27 task name => dependencies << dstdir do |t| 28 javadoc = Rjb::import('com.sun.tools.javadoc.Main') 29 30 args = [ "-sourcepath", sourcepath, 31 "-d", dstdir ] 32 33 args << "-quiet" unless verbose 34 args +=[ "-subpackages", package ] unless package.nil? 35 36 links = [ "http://java.sun.com/j2se/1.5.0/docs/api", 37 "http://static.springframework.org/spring/docs/2.0.x/api", 38 "http://www.hibernate.org/hib_docs/v3/api/", 39 "http://www.hibernate.org/hib_docs/annotations/api/", 40 "http://java.sun.com/javaee/5/docs/api/", 41 ] 42 43 links.each {|l| args += ["-link", "#{l}" ] } 44 20 task name => dstdir do |t| 21 javadoc = Rjb::import('com.sun.tools.javadoc.Main') 22 args = [ "-d", dstdir ] 23 args += extra_args unless extra_args.nil? 24 #require 'pp' 25 #pp args 45 26 ret = javadoc.execute(args) 46 27 raise "error generating javadocs" unless ret==0 trunk/lib/jibx_task.rb
r5814 r5845 7 7 include JavaHelper 8 8 9 attr_accessor :bindings, :name, : dependencies, :verbose, :classpath9 attr_accessor :bindings, :name, :verbose, :classpath 10 10 11 11 def initialize(name=:jibx) 12 12 @name = name 13 @verbose = false 14 @dependencies = [] 13 @verbose = false 15 14 @classpath = [] 16 15 yield self if block_given? trunk/sample/Rakefile
r5844 r5845 12 12 Rake::JavacTask.new(:compile) do |jct| 13 13 jct.java_files = JAVA_FILES 14 jct.options :nowarn, :debug 15 jct.source = "1.5" 16 jct.target = "1.5" 14 17 end 15 18 … … 29 32 Rake::JavaDocTask.new do |t| 30 33 t.sourcepath = SOURCE_DIR 31 t. package= "jerbil"34 t.subpackages = "jerbil" 32 35 t.dstdir = JAVADOC_DIR 36 t.options :quiet 33 37 end 34 38 task :javadoc => [ :compile ] … … 49 53 Rake::AptTask.new(:find_annotations) do |t| 50 54 t.java_files= JAVA_FILES 55 t.nocompile = true 51 56 t.find_annotation 'jerbil.sample.MyAnnotation' do |classes| 52 57 File.open(ANNOTATED_CLASSES, 'w') { |f| f << classes.to_yaml }
