これは何ですか
この投稿では、自動ビルドシステムについて説明します。 これが何であり、なぜそれが必要なのかは直観的に明らかだと思いますが、形式のために書く必要があります-これらは何らかの構成に基づいてプロジェクトを「組み立てる」ことができるソフトウェア製品です。
ここでの「収集」という言葉の下には非常に膨大な量の作業が隠されている可能性があり、「手動」アプローチではかなりの時間を費やす必要があります。
明確にするための小さなリスト:
- プロジェクトの依存ライブラリをネットワーク(リポジトリ)からダウンロードします。
- モジュールクラスまたはプロジェクト全体をコンパイルします。
- 追加のファイルを生成します:SQLスクリプト、XML構成など。
- ディレクトリを削除/作成し、指定されたファイルをそれらにコピーします。
- コンパイルされたプロジェクトクラスをさまざまな形式のアーカイブに圧縮する:zip、rar、rpm、jar、ear、warなど。
- テストの結果とカバレッジの割合の計算を含むプロジェクトのユニットテストのコンパイルと起動。
- プロジェクトファイルのリモートサーバーへのインストール(展開);
- ドキュメントとレポートの生成。
そのようなシステムの最も人気のある代表者は、Ant + Ivy、Mavenです。
混乱
ハブにはMavenに関する多くの記事がありますが、残念ながら、それらはすべて異なるハブにあります。 ビルドシステム用の個別のハブはありません。
したがって、私は「他の人のようにならない」ことを決定し、「Java」、「Web開発」などではなく、一般的なハブ「プログラミング」を選択しました。
したがって、興味のある読者を検索し続けるのは興味のある読者ではなく、興味のある読者です。
これらのシステムはJavaだけでなく、Web開発にも適用できるため、機能の説明と説明から投稿を始めました。 これらのシステムを使用するための可能性とオプションははるかに広いです。
最終的には、コードをまったくコンパイルすることさえできませんが、自動ルーチン作業(生成、アーカイブ、ファイル操作、サーバーへのインストール)を行います。これにより、開発者
はより効率的に時間を過ごすことができます 。
高レベルのアーキテクチャ
すべてのビルドシステムのアーキテクチャは次のとおりです。
- 構成
- 「個人用」システム設定が保存される独自の構成。 たとえば、インストール場所や環境に関する情報、リポジトリに関する情報など。
- モジュール構成。プロジェクトの場所、その依存関係、およびプロジェクトで実行する必要があるタスクを記述します。
- 構成パーサー
- システム自体の構成を「読み取る」ことができ、それに応じて構成するパーサー。
- モジュール構成パーサー。一部の「人間が読み取れる」用語は、アセンブリシステムのタスクを表します。
- システム自体は、OSで実行するユーティリティ+スクリプトであり、すべての構成を読み取った後、起動タスクの実装に必要な1つまたは別のアルゴリズムの実行を開始します。
- プラグインシステム-典型的なタスクを実装するためのアルゴリズムを記述する、システム用の追加のプラグインアドオン。
- ローカルリポジトリ-要求されたファイルをリモートリポジトリにキャッシュするためのローカルマシンにあるリポジトリ。
用語になじみのない人向け:リポジトリは、何らかのデータの構造化されたリポジトリです。 たとえば、さまざまな補助ライブラリ/プラグイン/スクリプト/ドキュメント/ソースなど。
これについては、ビルドシステムに関する一般的な部分を終了し、より具体的なものに進みます。
メイヴン
他の人が書いたものを書き換えることは間違っているので、Mavenハブに既に存在し、このシステムを具体的に説明する記事のリストを提供します-それが何であるか、どのように動作するのか、どの原則に基づいているのか。
次の順序で読むことをお勧めします。
おわりに
この記事の目的は、一般的なアセンブリシステム、それらが必要な理由、および実行可能なタスクに関する情報を読者に伝えることでした。
この記事を読み終えて、この記事が読者にこのようなシステムを日常のタスクに使用することを恐れないようにしてもらい、プロジェクトアセンブリシステムのシンプルさと効果を示すことを願っています。
続き:
ビルドシステム-ローカルリポジトリ