Я хотел попробовать создать свой собственный PPA. У меня есть проект Java, построенный с Maven. Это то, что я уже сделал:
Вот где я застрял.
Я читал учебники и много гуглил; но я не смог выяснить, как построить свой проект.
Я могу начать сборку для ветви; но, как я и ожидал, это не удалось. Я предполагаю, что я должен поместить некоторую метаинформацию, такую как 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 /. sh file) и файл 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, так как каждое изменение должно быть «второстепенным» выпуском).