2010-01-06 91 views
1

我有一个buildr脚本,首先加载一个java属性文件,然后创建一个ant任务。我得到一个中止错误:Buildr中止! org/apache/tools/ant/DefaultLogger运行buildr时。Apache Buildr问题与ant任务/ Hash.from_java_properties

这里是(简化)生成文件:

CONFIG = Hash.from_java_properties("a=1") 

define "my_project", :version => "1.0" do 

    ant("ant_test") do |ant_project| 
    # do something 
    end 

end 

我使用Buildr 1.3.5 OS X 10.6和Ruby 1.8.7

堆栈跟踪:

** Invoke my_project (first_time) 
** Execute my_project 
Defining task my_project:shell:jirb 
Defining task my_project:shell:clj 
Defining task my_project:shell:bsh 
** Invoke /Users/jsbowers/.m2/repository/org/apache/ant/ant/1.7.1/ant-1.7.1.jar (first_time, not_needed) 
** Invoke /Users/jsbowers/.m2/repository/org/apache/ant/ant-launcher/1.7.1/ant-launcher-1.7.1.jar (first_time, not_needed) 
** Invoke /Users/jsbowers/.m2/repository/org/apache/ant/ant-trax/1.7.1/ant-trax-1.7.1.jar (first_time, not_needed) 
** Invoke /Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/java (first_time, not_needed) 
Buildr aborted! 
org/apache/tools/ant/DefaultLogger 
/Library/Ruby/Gems/1.8/gems/Antwrap-0.7.0/lib/rjb_modules.rb:16:in `import' 
/Library/Ruby/Gems/1.8/gems/Antwrap-0.7.0/lib/rjb_modules.rb:16 
/Library/Ruby/Gems/1.8/gems/Antwrap-0.7.0/lib/ant_project.rb:86:in `initialize' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/java/ant.rb:74:in `new' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/java/ant.rb:74:in `ant' 
/Users/jsbowers/tmp/buildr_test/buildfile:9 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/project.rb:225:in `instance_exec' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/project.rb:225:in `define' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' 
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/project.rb:625:in `execute' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:146:in `switch_to_namespace' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/project.rb:624:in `execute' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:630:in `invoke_with_call_chain' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:616:in `invoke_with_call_chain' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:611:in `invoke' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/util.rb:204:in `__send__' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/util.rb:204:in `to_proc' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/project.rb:281:in `each' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/project.rb:281:in `projects' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/project.rb:863:in `projects' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:400:in `raw_load_buildfile' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:218:in `load_buildfile' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:496:in `standard_exception_handling' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:213:in `load_buildfile' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:137:in `run' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:496:in `standard_exception_handling' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/lib/buildr/core/application.rb:135:in `run' 
/Library/Ruby/Gems/1.8/gems/buildr-1.3.5/bin/buildr:19 
/usr/bin/buildr:19:in `load' 
/usr/bin/buildr:19 

回答

2

如在Buildr邮件列表中回答的,您需要在致电Hash.from_java_properties之前添加Java.load,以便正确初始化RJB *。

这通常在加载buildfile后自动完成,但由于您在加载阶段使用Java对象,因此需要明确告诉Buildr。 (*)RJB =红宝石 - Java桥

+0

太棒了,很有用,谢谢! –

1

声音就像一个类路径问题一样,但我无法确切地告诉你所提供的信息。尝试运行buildr --trace并发布完整结果。

就在旁边,但这类问题最容易在Buildr Users邮件列表中提出并回答。

+0

哦,但我只是爱堆栈溢出这么多....是这样错了吗? –

+0

添加了跟踪,并在列表中发布。谢谢你的提示。 –