Как создать PPA для проекта Maven?

8

Я хотел попробовать создать свой собственный PPA. У меня есть проект Java, построенный с Maven. Это то, что я уже сделал:

  • Создал PPA.
  • Настройте новый проект на Launchpad.
  • Добавлена ​​ветка, которая импортирует мой проект из репозитория SVN.
  • Создал рецепт для той ветки, которая публикует сборки для моего PPA.

Вот где я застрял.

Я читал учебники и много гуглил; но я не смог выяснить, как построить свой проект.

Я могу начать сборку для ветви; но, как я и ожидал, это не удалось. Я предполагаю, что я должен поместить некоторую метаинформацию, такую ​​как make-файл, в хранилище. Можно ли даже создавать и упаковывать проекты Maven на Launchpad? Я также попытался создать файл .deb локально, используя bzr dh-makeи debuild. bzr dh-makeсоздал много файлов в ./debianпапке, но debuildне удалось. Я думаю, что это сработало бы, если бы я указал правильную метаинформацию в своем проекте, поэтому это та же проблема, что и на Launchpad.

Я знаю, что это довольно общий вопрос, но я думаю, что не хватает надлежащих руководств для упаковки .debфайлов, даже если у вас нет такого «экзотического» случая, как я.

Подвести итог:

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

Любая помощь будет отличной :-)

Андре Станнек
источник
1
это возможно. я смотрю на решение, но это займет некоторое время
RobotHumans
Так??? Как это сделано Это сводит меня с ума.
i30817
@ i30817 - извините, я отсутствовал на defcon, сейчас я работаю над игрой для Ubuntu. я
заполню
Я нахожусь в точке, где я пытаюсь вызвать debuild, чтобы увидеть, сможет ли он собрать deb перед загрузкой в ​​ppa. Не повезло: dh build - с javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / правил двоичный файл dh - с javahelper dh_testroot dh_prep dh_installdirs каталог dh_in_DF dh_install: cp -a debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar / вернул код выхода 1 make: *** [двоичный код] Ошибка 2
i30817
@ aking1012 не торопись. У меня пока нет времени на этот проект.
Андре Станнек

Ответы:

2

Посмотрите в моем проекте bookjar: http://code.google.com/p/bookjar/source/browse/

в частности, каталог debian (особенно файл debian / package.sh) и файл build.xml (ant). В этом файле есть новый целевой объект «upload», который загружает сборочный артефакт в buildbot панели запуска.

Я использую инфраструктуру плюща и муравьев NetBeans, поэтому она, скорее всего, будет немного другой для вас. Однако одно можно сказать наверняка: вы не можете использовать ivy или maven с удаленного сервера сборки. Вам необходимо загрузить все библиотеки, которые вы используете, либо в виде кода, либо в виде jar-файлов. ivy: retrive загружает файлы в current_dir / lib, поэтому мой проект в netbeans настроен на поиск его библиотек (для этого nblibraries.properties является частью инфраструктуры netbeans). Подробности читайте в build.xml (в основном файлы debian / rules вызывают специальную цель ant для сборки на сервере, который не пытается символически связать файлы jar - потому что они уже скопированы туда).

Я также использую в своем package.sh моего проекта, находящегося в Mercurial, для создания файла журнала изменений из журнала hg, поэтому есть другие проблемы, которые нужно решить, если вы хотите такой же степени автоматизации и не использовать hg (в На самом деле, я думаю, что мой список изменений нарушает правила журналов изменений Debian, так как каждое изменение должно быть «второстепенным» выпуском).

i30817
источник
Звучит многообещающе, но может пройти несколько дней, прежде чем я успею разобраться.
Андре Станнек
Забыл: в этой схеме вы отвечаете за загрузку в выпуски ppa вместо того, чтобы связывать ppa с хранилищем кода с помощью сторожевого файла и периодически создавать его. Я предпочитаю это таким образом и даже не пытался сделать другое, но это возможно. Мой ppa построен с этим ( после 13 неудачных попыток! ). Также будьте осторожны, потому что ваш список изменений должен быть в порядке OCD, чтобы быть принятым debuild - это означает, что ваш журнал hg также должен быть так - мне пришлось перезапустить репозиторий из-за «пользователя», который не следовал Руководство
i30817
Через три месяца это намного лучше, чем ничего ;-)
Андре Станнек
Вы, вероятно, не хотите использовать трюк hg log> changelog. У него есть некоторые сомнительные требования, такие как отсутствие каких-либо тегов hg, кроме числовых (выпусков), или необходимость того, чтобы все коммиттеры коммитов следовали рекомендациям Debian (а поскольку hg не позволяет изменять историю ... в этом случае вы либо используете сложное расширение или переустановить репозиторий ... и в любом случае шланг удаленных клонов). Преимущество в том, что нет необходимости вести журнал изменений, если вы им управляете.
i30817
Все еще не мог найти время, чтобы разобраться в этом :-( Просто хотел, чтобы вы знали, что я не забыл эту проблему.
Андре Станнек