web-dev-qa-db-fra.com

Comment créer un PPA pour un projet Maven?

Je voulais essayer de créer mon propre PPA. Le projet que j'ai est un projet Java construit avec maven. C'est 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 depuis un référentiel SVN.
  • Création d'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 beaucoup de recherches sur Google; mais, je n'ai pas pu trouver comment construire mon projet.

Je peux commencer une construction pour la branche; mais, comme je m'y attendais, cela échoue. Je suppose que je dois mettre des méta-informations comme un fichier Make dans le référentiel. Est-il même possible de construire et de conditionner des projets Maven sur Launchpad? J'ai également essayé de construire un fichier .deb localement en utilisant bzr dh-make et debuild. bzr dh-make a créé de nombreux fichiers dans le dossier ./debian mais debuild a échoué. Je suppose que cela fonctionnerait si je spécifiais les bonnes méta-informations dans mon projet, 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 ya un manque de tutoriels appropriés pour l’emballage des fichiers .deb même si vous n’avez pas de dossier "exotique" comme moi.

Résumer:

Quels fichiers/informations dois-je fournir dans mon projet pour qu'il puisse être construit et empaqueté correctement?

Toute aide est la bienvenue :-)

8
André Stannek

Regardez dans mon projet bookjar: http://code.google.com/p/bookjar/source/browse/

plus précisément 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 "upload" qui télécharge un artefact à construire dans le tableau de bord du buildbot.

J'utilise ivy et l'infrastructure de fourmis netbeans, ce qui est susceptible d'être légèrement différent pour vous. Cependant, une chose est certaine: vous ne pouvez pas utiliser ivy ou maven à partir du serveur de construction distant. Vous devez télécharger toutes les bibliothèques que vous utilisez, sous forme de code ou de fichiers jars. ivy: retrive télécharge les fichiers dans le répertoire current_dir/lib afin que mon projet dans netbeans soit configuré pour y rechercher ses bibliothèques (nblibraries.properties fait partie de l'infrastructure netbeans pour cela). Lisez le fichier build.xml pour plus de détails (essentiellement, les fichiers debian/rules appellent une cible ant spéciale pour intégrer le serveur qui ne tente pas de créer un lien symbolique entre les fichiers jar - car ils sont déjà copiés à cet emplacement).

Je profite également dans mon package.sh du fait que mon projet est dans Mercurial pour créer un fichier changelog à partir du journal hg. Il existe donc 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 changelog respecte les règles de debian changelogs en faisant en sorte que chaque changement soit une version 'mineure').

2
i30817