3

私は現在、非常に不器用な方法でデスクトップ Java アプリケーションを構築しています。アプリケーションは、Windows、Mac、および Linux に展開されます。ここに私のビルドプロセスがあります:

Windows の場合:

  • ローカル リポジトリを更新する
  • エクリプスを起動する
  • プロジェクトを更新する
  • .jardesc ファイルをダブルクリックして、実行可能な jar ファイルを生成します。
  • 実行可能な jar をソース管理にコミットします
  • .nsi スクリプトを開き、ビルド ボタンをクリックして (NSSI プラグインがインストールされています)、.exe インストーラーを生成します。
  • インストーラーを ftp サーバーにアップロードして公開する

Mac の場合:

  • ローカル リポジトリを更新する
  • シェル スクリプトを実行して、ソース管理で .jar を使用して .dmg ファイルを生成する
  • ftp サーバーにアップロードして公開する

Linux の場合:

  • ローカル リポジトリを更新する
  • シェル スクリプトを実行して、ソース管理で .jar を使用して .deb ファイルを生成する
  • ftp サーバーにアップロードして公開する

また、将来のビルドには、次のような追加の手順を含めたいと考えています。

  • ビルド日の設定
  • HEAD git commit-id の設定
  • コードの難読化を実行する

このプロセスを合理化してスピードアップする方法について何か提案はありますか?

4

3 に答える 3

3

優れたビルド システムを真剣に考えている場合は、以下を提供するMavenを学習して使用することをお勧めします。

  • 宣言型プロジェクト定義 (pom.xml) に基づく包括的なプロジェクト ビルド ライフサイクル管理
  • 膨大な範囲のプラグイン。必要なすべての特定のビルド手順を処理できると期待しています
  • Eclipse との非常に優れた統合
  • 完全な依存関係管理 (依存関係の自動解決とダウンロードを含む)

これは気弱な人向けではありませんが (Maven は複雑な獣です)、長い目で見れば優れたソリューションです。

于 2012-06-24T15:42:37.190 に答える
2

最初のステップは、Eclipse を使用せずにすべてをビルドすることです。

Jenkinsのようなものを使用して、この一部を自動化することを検討することもできます。ビルド スクリプトは引き続き必要です。

解決策は次のようになります

  1. リポジトリを更新します。
  2. Jenkins が更新を検出し、jar をビルドします。
  3. Jenkins は jar をある場所に保存します。

次に、OS ごとに個別のビルドを作成し、Jenkins で実行することもできます。これらは、最初のビルドが正常に完了すると自動的にトリガーされる可能性があります。これらはそれぞれ次のようになります。

  1. 前のビルドから jar を取得します。
  2. OS 固有のバイナリを FTP サイトに発行します。

Antは良い出発点ですが、ビルド出力と依存関係の管理に少し役立つため、Apache IvyまたはMavenも検討することをお勧めします。

于 2012-06-24T15:37:16.553 に答える
1

Ant をご覧ください: https://ant.apache.org/

Apache Ant は Java ライブラリおよびコマンドライン ツールであり、その使命は、ビルド ファイルに記述されたプロセスを、相互に依存するターゲットおよび拡張ポイントとして駆動することです。Ant の既知の主な用途は、Java アプリケーションのビルドです。

また、ビルド システムの長いリスト: https://en.wikipedia.org/wiki/List_of_build_automation_software

于 2012-06-24T12:55:20.377 に答える