Je voulais essayer de créer mon propre PPA. Le projet que j'ai est un projet java construit avec maven. Voici ce que j'ai déjà fait jusqu'à présent:
- Créé un PPA.
- Configurez un nouveau projet sur Launchpad.
- Ajout d'une branche qui importe mon projet à partir d'un référentiel SVN.
- J'ai créé une recette pour cette branche qui publie les versions sur mon PPA.
C'est là que je suis coincé.
J'ai lu les tutoriels et googlé beaucoup; mais je n'ai pas pu découvrir comment construire mon projet.
Je peux démarrer une build pour la branche; mais, comme je m'y attendais, cela échoue. Je suppose que je dois mettre des méta-informations comme un makefile dans le référentiel. Est-il même possible de construire et de packager des projets Maven sur Launchpad? J'ai également essayé de créer un fichier .deb localement en utilisant bzr dh-make
et debuild
. bzr dh-make
créé beaucoup de fichiers dans le ./debian
dossier mais a debuild
échoué. Je suppose que cela fonctionnerait si je spécifiais les bonnes métadonnées dans mon projet, c'est donc le même problème que sur Launchpad.
Je sais que c'est une question assez générale mais je pense qu'il y a un manque de tutoriels appropriés pour empaqueter des .deb
fichiers même si vous n'avez pas de cas "exotique" comme moi.
Résumer:
Quels fichiers / informations dois-je fournir dans mon projet afin qu'il puisse être correctement construit et conditionné?
Toute aide est la bienvenue :-)
Réponses:
Regardez dans mon projet bookjar: http://code.google.com/p/bookjar/source/browse/
spécifiquement le répertoire debian (en particulier le fichier debian / package.sh) et le fichier build.xml (ant). Dans ce fichier, il y a une nouvelle cible de «téléchargement» qui télécharge un artefact à construire vers le buildbot du tableau de bord.
J'utilise lierre et l'infrastructure de fourmis netbeans, donc il est probable que ce soit légèrement différent pour vous. Cependant, une chose est sûre: vous ne pouvez pas utiliser ivy ou maven depuis le serveur de build distant. Vous devez télécharger toutes les bibliothèques que vous utilisez, sous forme de code ou de fichiers jar. ivy: retrive télécharge les fichiers dans le répertoire rép_actuel / lib donc mon projet dans netbeans est configuré pour y chercher ses bibliothèques (nblibraries.properties fait partie de l'infrastructure netbeans pour cela). Lisez le fichier build.xml pour plus de détails (fondamentalement, les fichiers debian / rules appellent une cible de fourmi spéciale à construire sur le serveur qui n'essaye pas de créer un lien symbolique entre les fichiers jar - car ils y sont déjà copiés).
Je profite également dans mon package.sh de mon projet en mercurial pour construire un fichier journal des modifications à partir du journal hg, donc il y a d'autres problèmes à résoudre si vous voulez le même degré d'automatisme et n'utilisez pas hg (dans En fait, je pense que mon journal des modifications contourne les règles des journaux des modifications de Debian en faisant de chaque modification une version «mineure»).
la source