Como criar um PPA para um projeto Maven?

8

Eu queria tentar criar meu próprio PPA. O projeto que eu tenho é um projeto java construído com maven. Isto é o que eu já fiz até agora:

  • Criou um PPA.
  • Configure um novo projeto no Launchpad.
  • Adicionada uma ramificação que está importando meu projeto de um repositório SVN.
  • Criei uma receita para esse ramo que está publicando as compilações no meu PPA.

É aqui que estou preso.

Eu li os tutoriais e pesquisei bastante no Google; mas não consegui descobrir como construir meu projeto.

Eu posso iniciar uma construção para o ramo; mas, como eu esperava, falha. Acho que tenho que colocar algumas informações meta como um makefile no repositório. É possível criar e empacotar projetos Maven no Launchpad? Também tentei criar um arquivo .deb localmente usando bzr dh-makee debuild. bzr dh-makecriou muitos arquivos na ./debianpasta, mas debuildfalhou. Acho que funcionaria se eu especificasse as meta informações corretas no meu projeto, por isso é o mesmo problema que no Launchpad.

Sei que essa é uma pergunta bastante geral, mas acho que faltam tutoriais adequados para empacotar .debarquivos, mesmo que você não tenha um caso "exótico" como eu.

Resumindo:

Quais arquivos / informações eu tenho que fornecer no meu projeto para que ele possa ser compilado e compactado corretamente?

Qualquer ajuda seria ótimo :-)

André Stannek
fonte
1
possível é possível. Estou procurando uma solução, mas vai demorar algum tempo
RobotHumans
Assim??? Como isso é feito. Isto está me enlouquecendo.
I30817
@ i30817 - desculpe, eu estava ausente por defcon, agora estou trabalhando em um jogo para o ubuntu. eu vou preencha a resposta tão rapidamente quanto outras demandas permitir
RobotHumans
Estou no ponto em que estou tentando chamar o debuild para ver se ele é capaz de criar o deb antes de fazer o upload para um ppa. Sem sorte: dh build - com javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / regras binário dh binário --com javahelper dh_testroot dh_prep dh_installdirs: dh_install: cp -a debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar / retornou código de saída 1 make: *** [binário] Erro 2
i30817
@ aking1012 sem pressa. No momento, não tenho tempo para esse projeto.
André Stannek

Respostas:

2

Veja no meu projeto bookjar: http://code.google.com/p/bookjar/source/browse/

especificamente o diretório debian (especialmente o arquivo debian / package.sh) e o arquivo build.xml (ant). Nesse arquivo, há um novo destino 'upload' que carrega um artefato construtível no buildbot da barra de ativação.

Estou usando a ivy e a infraestrutura de formiga netbeans, portanto é provável que seja um pouco diferente para você. No entanto, uma coisa é certa: você não pode usar ivy ou maven no servidor de compilação remoto. Você precisa fazer o upload de todas as bibliotecas usadas, na forma de código ou jars. ivy: retrive baixa os arquivos para o current_dir / lib, para que meu projeto no netbeans seja configurado para procurar suas bibliotecas lá (nblibraries.properties faz parte da infraestrutura do netbeans para isso). Leia o build.xml para obter detalhes (basicamente os arquivos debian / rules chamam um alvo ant especial para compilar no servidor que não tenta vincular novamente os arquivos jar - porque eles já foram copiados).

Também estou aproveitando meu package.sh do meu projeto para criar um arquivo de registro de alterações a partir do hg log, portanto, existem outros problemas a serem resolvidos se você deseja o mesmo grau de automatismo e não usa o hg (em de fato, acho que meu changelog está alterando as regras dos debian logs, fazendo com que cada alteração seja uma versão 'menor').

i30817
fonte
Parece promissor, mas pode demorar alguns dias até que eu tenha tempo de analisar.
André Stannek 9/09/12
Esqueceu: Neste esquema, você é responsável pelos uploads para as liberações do ppa, em vez de vincular o ppa a um repositório de código com um arquivo watchdog e fazer com que ele seja construído periodicamente. Prefiro assim e nem tentei fazer o outro, mas provavelmente é possível. Meu ppa construiu com isso ( após 13 tentativas frustradas! ). Também tenha cuidado, pois seu changelog precisa estar em uma ordem original do TOC para ser aceito pelo debuild - o que significa que seu hg log também precisa ser assim - tive que reiniciar o repositório por causa de um 'usuário' que não seguiu o diretrizes
i30817 09/09/12
Depois de três meses é muito melhor do que nada ;-)
André Stannek
Você provavelmente não deseja usar o truque hg log> changelog. Ele tem alguns requisitos duvidosos, como não ter nenhuma tag hg, exceto os numéricos (releases) ou ter que todos os commits de commit seguirem as diretrizes da debian (e como o hg não permite mudanças no histórico ... se isso acontecer, use uma extensão complicada). ou reinicie o repositório ... e, em qualquer caso, clones remotos de mangueira). Ele tem a vantagem de não precisar manter o registro de alterações, se você o gerenciar.
130 de
Ainda não consegui encontrar tempo para analisá-lo :-( Só queria que você soubesse que não esqueci esse problema.
André Stannek