mavenに対する深い理解『二』


1.mavenとantとmakeの基本的な違い:
  • が最初に現れたのはmakeのmakeFileだが、強く依存して編纂されたオペレーティングシステムは、プラットフォームをまたぐのではなく、antが現れ、antはjavaで書かれているので、antはプラットフォームをまたぐが、antはmakeと同じようにプロセス開発であり、異なる工事で重複的な労働が多く、そこでmavenが現れ、mavenは声明式開発であり、プラグインがあるため、そんなにたくさんのコピーをする必要はありません
  • MavenにはAntにはない高度な特性がたくさんあります.例えば、管理に依存するなど、Mavenは構築ツールだけでなく、プロジェクト管理ツールであり、ますます流行しています.

  • 2.Mavenは、clean、default、siteの3つの独立したライフサイクルを持っています.
  • Clean Lifecycleは、実際の構築を行う前にいくつかのクリーンアップ作業を行います.
  • Default Lifecycleが構築したコア部分、コンパイル、テスト、パッケージング、導入など.
  • Site Lifecycleは、プロジェクトレポート、サイト、公開サイトを生成します.

  • 3.各ライフサイクルの関係:mavenの各ライフサイクルは互いに独立しているが、対応するライフサイクルの各段階は相互に依存している.たとえば、cleanとdefaultの間は独立していますが、cleanの各フェーズは相互に依存し、順次実行されます.
  • cleanライフサイクルcleanライフサイクルの目的は、3つのフェーズ:1)pre-cleanがクリーンアップを実行する前に完了する必要がある作業を含むプロジェクトをクリーンアップすることです.2)cleanは前回構築したファイルをクリーンアップする.3)post-cleanは、クリーンアップ後に完了する必要がある作業を実行します.
  • defaultライフサイクルdefaultライフサイクルは、ライフサイクルの最も核心的な部分である真のコンポーネントを定義するために必要なすべてのステップです.これには、1)validate検証プロジェクトが正しいかどうかと、必要なすべての関連リソースが使用可能かどうか2)initialize初期化構築3)generate-sourcess 4)process-sourcess処理ソース5)generate-resources 6)process-resources処理プロジェクトのメインリソースファイルが含まれます.src/main/resourcesディレクトリの内容を変数置換するなどして、プロジェクト出力のメインclasspathディレクトリにコピーします.7)compileコンパイルプロジェクトのメインソースコード8)process-classes 9)generate-test-sourcess 10)process-test-sourcess処理プロジェクトテストリソースファイル11)generate-test-test-resources 12)process-test-resources処理テストのリソースファイル13)test-compileコンパイルプロジェクトのテストコード14)process-test-test-classes 15)testはユニットテストフレームワークを使用してテストを実行し、テストコードがパッケージ化されたり配置されたりしない16)prepare-packageパッケージ化の準備ができている17)packageはコンパイルされたコードを受け入れ、パブリッシュ可能なフォーマットにパッケージ化する18)pre-integration-test 19)integration-test 20)postintegration-test 21)verify 22)installはパッケージをMavenローカルウェアハウスにインストールし、ローカルの他のMavenプロジェクトで使用する23)deployは、最終的なパッケージをリモートウェアハウスにコピーし、他の開発者とMavenプロジェクトで
  • を使用する
  • siteライフサイクルsiteライフサイクルの目的は、POMに含まれる情報に基づいて、チームのコミュニケーションとプロジェクト情報の公開を容易にする友好的なサイトを自動的に生成することができるプロジェクトサイトの構築と公開です.このライフサイクルは、1)pre-siteがプロジェクトサイトを生成する前に完了する必要がある作業を実行する2)siteがプロジェクトサイトドキュメントを生成する3)post-siteがプロジェクトサイトを生成した後に完了する必要がある作業を実行する4)site-deployが生成したプロジェクトサイトをサーバに送信する
  • 段階を含む.
    4.Artifact & Repositories: 1).Artifact:jarファイル、ソースファイル、バイナリファイル、warファイル、pom 2などのプロジェクトで生成されるファイルです.RepositoriesはArtifactを格納するために使用されます
    5.repositoriesとpluginRepositoriesとdistributionManagementの異同
  • コンポーネントは、Mavenライブラリの主要なコンポーネントである他のコンポーネントに依存するコンポーネント(dependencies)の2つに分類できます.もう1つはプラグインです.(plugins)特殊なコンポーネントです.Repositories:リモート・ライブラリに特化したコンポーネントのストレージpluginRepositories:プラグインの特殊性のため、プラグインとコンポーネントは別々にdistributionManagementを格納します.含み、前者:導入後にパブリッシュされたライブラリ後者:開発中にパブリッシュされたライブラリに重点を置きます.(スナップショット版)注:RepositoriesとpluginRepositoriesはprofileに設定することも、profileの外に設定することもできます.project内:区別:前者:工事中の環境に重点を置いたライブラリ、後者:工事全体に適用されるライブラリ
  • はpom.xmlまたはsettings.xmlで設定すると、id、ライブラリのID name、ライブラリの名前url、ライブラリのURL releases、ライブラリのバージョンreleasesのコンポーネントsnapshots、ライブラリのバージョンsnapshotsのコンポーネント
  • という情報が必要になることが多い.
    コンポーネントのバージョンに応じて、コンポーネントをreleasesタイプのコンポーネントとsnapshotsタイプのコンポーネントに分けることができます.
    コンポーネントのバージョンが変更されると、ライブラリでコンポーネントが更新されますか?ライブラリまたは設定に従う必要があります.との設定はパラメータが一致します
    enabled,      
    updatePolicy,  4      ,    daily, always, never, interval:X(   X     ,       ,  min),   daily
    checksumPolicy,        ,    ignore, fail, warn
    

    6.mvn installとmvn cleanとmvn packageとmvn deployの違い
    Mvn package:プロジェクトをjarパッケージ(pomを参照)に、targetディレクトリの下に配置するmvn install:プロジェクトをjarパッケージ(pomがどのように配置されているかを参照)に、m 2のディレクトリの下に、targetディレクトリの下に配置するMvn deploy:プロジェクトをjarパッケージ(pomを参照)に、m 2とtargetに配置し、リモートサーバMvn clean:targetディレクトリを削除します