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


8

自分でPPAを作ってみたかった。私が持っているプロジェクトは、mavenでビルドされたjavaプロジェクトです。これは私がこれまでに行ったことです:

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

これは私が行き詰まっているところです。

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

ブランチのビルドを開始できます。しかし、予想通り、失敗しました。makefileなどのメタ情報をリポジトリに配置する必要があると思います。LaunchpadでMavenプロジェクトをビルドしてパッケージ化することさえ可能ですか?私はまた、使用してローカルに.debファイルを構築しようとしたbzr dh-makedebuild。フォルダ内にbzr dh-make多数のファイルを作成しました./debiandebuild失敗しました。プロジェクトで正しいメタ情報を指定した場合は機能するので、Launchpadと同じ問題です。

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

要約すると:

適切にビルドおよびパッケージ化できるように、プロジェクトでどのファイル/情報を提供する必要がありますか?

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


1
それは可能です。私は解決策を探していますが、しばらく時間がかかります
RobotHumans '23 / 07/23

そう???それはどのように行われます。これは私を夢中にさせています。
i30817

@ i30817-申し訳ありません、私はdefconを離れていましたが、今はubuntuのゲームに取り組んでいます。他の要求が許す限り迅速に答えを記入します
RobotHumans

私は、debuildを呼び出して、ppaにアップロードする前にdebをビルドできるかどうかを確認しようとしているところです。運が悪い:dh build --with javahelper dh_testdir dh_auto_configure jh_linkjars dh_auto_build jh_build dh_auto_test fakeroot debian / rules binary dh binary --with javahelper dh_testroot dh_prep dh_installdirs dh_install_dir dh_install cp:not stat `.jar ' dh_install:cp -a debian / tmp / bookjar.jar debian / bookjar / usr / share / bookjar /が終了コード1を返しましたmake:*** [binary] Error 2
i30817

@ aking1012急いでいません。現時点では、そのプロジェクトの時間的余裕もありません。
アンドレ・Stannek

回答:


2

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

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

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

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


有望に聞こえますが、調査するまでに数日かかる場合があります。
アンドレ・Stannek

忘れた:このスキームでは、PPAをウォッチドッグファイルを使用してコードリポジトリにリンクし、定期的にビルドするのではなく、PPAリリースへのアップロードを担当します。私はこの方法を好み、他のこともしようとしませんでしたが、おそらくそれは可能です。私のPPAはこれで構築されました(13回失敗した後!)。また、debuildが変更ログを受け入れるには、変更ログがOCDの元の順序である必要があるため、注意が必要です。つまり、hgログもそうでなければなりません。「ユーザー」が従わなかったため、リポジトリを再初期化する必要がありました。ガイドライン
i30817

3ヵ月後には多くの良い;-)何よりもだ
アンドレ・Stannek

あなたはおそらくhg log> changelogトリックを使いたくないでしょう。これには、数値のもの(リリース)以外にhgタグを付けない、またはすべてのコミッターにdebianガイドラインに従う必要があるなどの疑わしい要件があります(そしてhgは変更履歴を許可しないため...これが発生した場合は、複雑な拡張機能を使用するか、または、リポジトリを再初期化します...とにかくリモートクローンをホースします)。ただし、変更ログを管理すれば、それを維持する必要がないという利点があります。
i30817

それでも調べる時間を見つけることができませんでした:-(私がこの問題を忘れていないことを知ってほしいだけでした。
AndréStannek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.