2011-03-14 1 views
1

У меня есть следующие в Ant цели:JRuby называется в Ant не может найти драгоценные камни, что я делаю неправильно

<java jar="tools/jars/jruby-complete.jar" fork="true"> 
    <arg value="-r"/> 
    <arg value="tools/jars/chunky_png.jar"/> 
    <arg value="-r"/> 
    <arg value="tools/jars/compass.jar"/> 
    <arg value="-S"/> 
    <arg value="compass/compass-compile.rb"/> 
    <arg value="${basedir}"/> 
</java> 

Предположим пути правильны (я изменил их немного для этого примера) ,

Мой билд неудачу, потому что камни не могут быть найдены с сообщением об ошибке:

`report_activate_error': Could not find RubyGem chunky_png (~> 0.12.0) (Gem::LoadError) 

Если установить самоцветы через gem это будет работать, но я не хочу, чтобы сделать это, потому что я не может гарантировать, что будет на сервере сборки.

+0

Первоначальная догадка заключается в том, что это связано с определением более чем одного параметра -r. –

ответ

2

Проблема закончилась тем, что я создал свой chunky_png.jar неправильно.

Посмотрев на Gems in a Jar я заметил, что мой .jar должен содержать specifications каталог, в котором мой .jar не сделал.

Устранение проблемы, как я создал .jar.

+0

Я также решил использовать блок '

0

command line parameter documentation для JRuby не имеет пробелов между флагом -r и библиотекой. Работает ли следующая работа?

<java jar="tools/jars/jruby-complete.jar" fork="true"> 
    <arg value="-rtools/jars/chunky_png.jar"/> 
    <arg value="-rtools/jars/compass.jar"/> 
    <arg value="-S"/> 
    <arg value="compass/compass-compile.rb"/> 
    <arg value="${basedir}"/> 
</java> 

Другое дело, чтобы попытаться будет положить архивы, содержащие драгоценные камни на пути к классам для java задачи.

+0

Это тоже не работает. –

+0

Аргумент '-r' также используется стандартным Ruby. Мне интересно, нужно ли просто указывать имя библиотеки, например. 'chunky_png' и' compass', и я полагаю, что снова убедитесь, что архивы драгоценных камней находятся на пути к классам. –