Как я могу получить банки подпроектов в свой почтовый индекс?

Я пытаюсь сделать zip-файл верхнего уровня в моем файле сборки buildr, но файлы jar, похоже, не попадают в полученный zip-файл.

В структуре проекта есть подпроекты:

desc 'Main project'
define 'hex' do
  #... omitting top-level config ...

  desc 'Hex Utilities'
  define 'util' do
    package :jar
  end

  #... omitting other sub-projects, they're all the same ...

  binaries_id = "#{id}-components-#{version}"
  package(:zip, :file => _("target/#{binaries_id}.zip")).path(binaries_id).tap do |path|
    path.include 'COPYING', 'COPYING.LESSER', 'CHANGELOG', 'README.markdown'

    %w{anno binary interpreter util viewer}.each do |proj|
      path.include project(proj).packages
    end
  end
end

Я также пробовал:

      path.include project(proj).package(:jar)

явно выбирая только банку, хотя в любом случае это единственный пакет, а также:

      path.include project(proj).packages.map{|p| "#{p}"}

который отображает их в строки, поскольку я заметил, что все остальные строки path.include принимают строки, и подозревал, что это может просто не работать с массивами объектов пакета, но это тоже не работает. Затем моей последней мыслью было просто вставить струны, как я делаю с остальными включениями:

      path.include "#{proj}/target/hex-#{proj}-#{version}.jar"

Но даже это не работает, поэтому я понятия не имею, как действовать дальше.


person Trejkaz    schedule 08.06.2014    source источник


Ответы (1)


Я не могу воспроизвести поведение. В самой последней версии buildr я создал файл сборки, который выглядит так:

define 'foo' do
  project.version = '1.0'

  define 'bar' do
    package :jar
  end

  package(:zip, :file => _("somepath.zip")).path('somepath').tap do |path|
    path.include project('bar').packages
  end
end

Запустите «buildr clean package», а затем «unzip -t somepath.zip» выдает;

Archive:  somepath.zip
    testing: somepath/                OK
    testing: somepath/foo-bar-1.0.jar   OK
No errors detected in compressed data of somepath.zip.

Чего я и ожидал.

person Peter Donald    schedule 18.06.2014