Если я хочу, чтобы упаковать банку подпроекта внутри основного кувшина, я могу сделать такую вещь:Может ли build построить результат пакета подпроекта в ресурсах текущего проекта?
define 'library' do
project.version = '0.1'
define 'subproject' do
package :jar
end
package(:jar).include(project('subproject').package(:jar),
as: 'org/acme/library/subproject.jar')
end
Это будет лениво строить банку в подпроект, прямо перед кормлением для упаковки в основной банку, и все работает.
Проблема в том, что мои тесты также хотят использовать файл jar, поэтому логическое место для него находится в ресурсах. Поэтому мне интересно, как я должен копировать что-то, созданное другим проектом, в ресурсы для этого проекта. В документах, в частности, отсутствуют какие-либо примеры этого и в основном сосредоточены на том, как копировать один каталог файлов в другой.
Это то, что я пробовал:
resources.from(project('subproject').package(:jar),
as: 'org/acme/library/subproject.jar')
Это не удается:
RuntimeError : Source directory $HOME/Documents/library/subproject/target/library-subproject-0.1.jar doesn't exist
$HOME/Documents/library/buildfile:38:in `block in <top (required)>'
К моему удивлению, это, кажется, единственное место в Buildr который охотно оценивает существование сборки продукт вместо того, чтобы устанавливать его как ленивую зависимость ...
Я могу обойти это следующим образом:
Мне не нравится это, потому что он все еще с нетерпением оценивает каталог, что заставляет меня создавать этот каталог задолго до того, как будет запущена какая-либо из строек. Это означает, что даже когда я запускаю buildr clean
, он создает этот каталог. Тьфу.
Итак, каков правильный способ сделать это?
В настоящее время упаковка в пакете работает нормально, проблема в том, что я хочу упаковать данные в место назначения ресурсов. Вопрос показывает, что я получил это, чтобы работать, но, используя хак, который кажется неестественным. Тем не менее, использование подпроекта для конечного пакета похоже на то, что он будет убирать файл сборки, поэтому я думаю, что все равно сделаю это. :) – Trejkaz