У меня есть проект Java, который использует Apache Buildr в качестве инструмента для сборки.Он устанавливает WAR и два ZIP-архива в репозиторий Maven.Однако в Buildr 1.5.6 кажется, что когда инструкции по сборке ZIP-архивов добавляются в файл сборки, в выходной папке не создается файл .pom.
А именно, при выполнении buildr clean package
используя этот код файла сборки:
task :package => [:get_svn_version]
SQL_ARCHIVE = "Project-#{VERSION_NUMBER}-sql.zip"
package(:zip, :file => _(:target, SQL_ARCHIVE)).include("src/main/sql")
CONF_ARCHIVE = "Project-#{VERSION_NUMBER}-conf.zip"
package(:zip, :file => _(:target, CONF_ARCHIVE)).include(_("conf"))
package(:war).with :libs => [PACKAGE_ONLY_DEPS, COMPILE_PACKAGE_DEPS]
... Buildr создает выходную папку, содержащую:
atg@host:> ls target
classes Project-1.1-SNAPSHOT-conf.zip Project-1.1-SNAPSHOT.war test
js-test Project-1.1-SNAPSHOT-sql.zip resources
Принимая во внимание только это:
task :package => [:get_svn_version]
package(:war).with :libs => [PACKAGE_ONLY_DEPS, COMPILE_PACKAGE_DEPS]
... выводит:
atg@host:> ls target
classes js-test Project-1.1-SNAPSHOT.pom Project-1.1-SNAPSHOT.war resources test
Как видите, файл .pom в первом случае не создается, поэтому впоследствии buildr install
не может быть успешным.Поэтому мой вопрос как мне заставить Buildr создать файл .pom, а также мои архивы WAR и ZIP?
РЕДАКТИРОВАТЬ:
Следующий простой файл сборкидостаточно воспроизвести проблему:
# Generated by Buildr 1.5.6, change to your liking
repositories.remote << 'http://repo1.maven.org/maven2'
DUMMY_DEPENDENCIES = 'org.hamcrest:hamcrest-core:jar:1.3'
desc "Test project for stackoverflow.com"
define 'no-pom' do
project.group = "test"
project.version = '1.0-SNAPSHOT'
test.with DUMMY_DEPENDENCIES
package(:zip, :file => _("target", "configuration.zip")).include(_("conf"))
package(:war).with :libs => [DUMMY_DEPENDENCIES]
end
Это основано на классическом автоматически сгенерированном проекте Maven2 с App.java
и "строгим" AppTest.java
.Все, что я добавил, это папка conf
в корне проекта, которая содержит только один фиктивный текстовый файл.
Если вы запустите вышеописанное, вы получите WAR и «configuration.zip», созданные, но нет.POM файл.Если вы закомментируете инструкцию по архивированию папки conf, вы получите файл .pom, сгенерированный вместе с файлом WAR.