Я хотел попробовать создать свой собственный PPA. У меня есть проект Java, построенный с Maven. Это то, что я уже сделал:
- Создал PPA.
- Настройте новый проект на Launchpad.
- Добавлена ветка, которая импортирует мой проект из репозитория SVN.
- Создал рецепт для той ветки, которая публикует сборки для моего PPA.
Вот где я застрял.
Я читал учебники и много гуглил; но я не смог выяснить, как построить свой проект.
Я могу начать сборку для ветви; но, как я и ожидал, это не удалось. Я предполагаю, что я должен поместить некоторую метаинформацию, такую как make-файл, в хранилище. Можно ли даже создавать и упаковывать проекты Maven на Launchpad? Я также попытался создать файл .deb локально, используя bzr dh-make
и debuild
. bzr dh-make
создал много файлов в ./debian
папке, но debuild
не удалось. Я думаю, что это сработало бы, если бы я указал правильную метаинформацию в своем проекте, поэтому это та же проблема, что и на Launchpad.
Я знаю, что это довольно общий вопрос, но я думаю, что не хватает надлежащих руководств для упаковки .deb
файлов, даже если у вас нет такого «экзотического» случая, как я.
Подвести итог:
Какие файлы / информацию я должен предоставить в своем проекте, чтобы его можно было правильно собрать и упаковать?
Любая помощь будет отличной :-)
Ответы:
Посмотрите в моем проекте 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, так как каждое изменение должно быть «второстепенным» выпуском).
источник