web-dev-qa-db-ja.com

MavenプロジェクトのPPAを作成する方法は?

独自のPPAを作成してみました。私が持っているプロジェクトはJava mavenでビルドされたプロジェクトです。これは私がこれまでにやったことです:

  • PPAを作成しました。
  • Launchpadで新しいプロジェクトをセットアップします。
  • SVNリポジトリからプロジェクトをインポートするブランチを追加しました。
  • ビルドをPPAに公開するそのブランチのレシピを作成しました。

これは私が立ち往生しているところです。

私はチュートリアルをよく読んで、Googleをよく使いました。しかし、プロジェクトを構築する方法を見つけることができませんでした。

ブランチのビルドを開始できます。しかし、予想どおり、失敗します。メイクファイルのようなメタ情報をリポジトリに入れなければならないと思います。 LaunchpadでMavenプロジェクトをビルドおよびパッケージ化することも可能ですか?また、bzr dh-makeおよびdebuildを使用して.debファイルをローカルでビルドしようとしました。 bzr dh-make./debianフォルダーに多くのファイルを作成しましたが、debuildは失敗しました。プロジェクトで適切なメタ情報を指定した場合に機能するので、Launchpadと同じ問題になると思います。

これは非常に一般的な質問であることは知っていますが、私のような「エキゾチックな」ケースを持っていなくても、.debファイルをパッケージ化するための適切なチュートリアルが不足していると思います。

まとめると:

プロジェクトを適切に構築してパッケージ化するには、どのファイル/情報をプロジェクトに提供する必要がありますか?

どんな助けも素晴らしいでしょう:-)

8
André Stannek

私のbookjarプロジェクトを見てください: http://code.google.com/p/bookjar/source/browse/

特に、debianディレクトリ(特にdebian/package.shファイル)とbuild.xml(ant)ファイル。そのファイルには、ビルド可能なアーティファクトをランチパッドbuildbotにアップロードする新しいターゲット「アップロード」があります。

私はツタとnetbeans antインフラストラクチャを使用しているので、あなたにとっては少し異なるでしょう。ただし、1つ確かなことがあります。リモートビルドサーバーからivyまたはmavenを使用することはできません。コードまたはjarのいずれかの形式で、使用するすべてのライブラリをアップロードする必要があります。 ivy:retriveはファイルをcurrent_dir/libにダウンロードするので、netbeansの私のプロジェクトはそこにあるライブラリを探すようにセットアップされます(nblibraries.propertiesはそのためのnetbeansインフラストラクチャの一部です)。詳細についてはbuild.xmlをお読みください(基本的には、debian/rulesファイルは特別なantターゲットを呼び出して、jarファイルを既にリンクしているため、jarファイルをシンボリックリンクしようとしないサーバーでビルドします)。

また、Mercurialにあるプロジェクトのpackage.shを利用して、hgログからchangelogファイルを作成しているため、同じ程度の自動化が必要で、hg(in実際、私の変更ログは、各変更を「マイナー」リリースにすることで、Debianの変更ログのルールを曲げていると思います)。

2
i30817