2010-01-06 8 views
1

J'ai un script buildr qui charge d'abord un fichier de propriétés java, puis crée une tâche ant. J'obtiens une erreur d'abandon: Buildr a avorté! org/apache/tools/ant/DefaultLogger lors de l'exécution de buildr.Problème de Build Apache avec tâche ant/Hash.from_java_properties

Voici le (simplifié) buildfile:

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

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

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

end 

J'utilise Buildr 1.3.5 sur Mac OS X 10.6 avec trace Ruby 1.8.7

de la pile:

** 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 

Répondre

2

En réponse à la liste de diffusion Buildr, vous devez ajouter Java.load avant votre appel au Hash.from_java_properties pour que RJB * soit correctement initialisé.

Ceci est normalement fait automatiquement après que le buildfile a été chargé mais puisque vous utilisez des objets Java pendant la phase de chargement, vous devez en informer explicitement Buildr.

(*) RJB = Ruby-Java Bridge

+0

super, ça marche, merci! –

1

Sounds comme un problème de classpath, mais je ne peux pas vraiment dire avec certitude l'information que vous avez donnée. Essayez d'exécuter buildr --trace et d'afficher les résultats complets. Juste un peu de côté, mais les questions de ce genre sont plus facilement posées et répondues sur la liste de diffusion des utilisateurs Buildr.

+0

oh mais j'adore Stack Overflow tellement .... est-ce si faux? –

+0

a ajouté la trace et a également posté sur la liste. Merci pour le conseil. –