Maven


Maven-Java構築ツール


Apache Mavenは、Javaベースのプロジェクトのライフサイクルを管理する構築ツールです.

ライフサイクルとは?


Mavenはフレームワークの一つです.したがって、指定した順序で動作し、これらの構築順序をライフサイクルと呼びます.
各フェーズの機能について説明します.
  • 故障:一般構築プロセス用モデル
  • Clean:構築時に生成したファイルを削除する手順
  • Validate:プロジェクトが正しいことを確認し、必要な情報がすべて利用可能であることを確認するフェーズ
  • Compile:プロジェクトソースのコンパイルフェーズ
  • テスト:ユニット(ユニット)テストを実行する手順(テストに失敗した場合は構築に失敗、スキップ)
  • パッケージ:実際にコンパイルしたソースコードとリソースをjar、warなどのファイルにパッケージ(圧縮)して展開する手順
  • Verify:統合テスト結果チェックを行い、品質基準を満たしていることを確認する手順
  • インストール:パッケージをローカルリポジトリにインストールする手順
  • サイト:プロジェクトドキュメントとサイトを作成するフェーズ
  • 配備:作成したパケットをリモート・リポジトリにリリースする段階
  • 最終構築順序は[Compile]->「test」->「package」
  • compile:src/main/javaですべてのソースコードをコンパイル
  • test:src/test/java、src/test/resourcesテストリソースコピーとテストソースコードコンパイル
  • パッケージ:コンパイルとテスト完了後jar、warなどで圧縮
  • 各フェーズには依存関係があり、前のフェーズの前に実行する必要があります.つまり、すべてのコンストラクションステップは、前のステップが正常に実行されたときに実行される依存(Dependency)です.
    このJava構築ツールMavenの特徴、利点、欠点について説明します.

    特長

  • コンパイルと構築を同時に行う.
  • サーバ側の導入リソースを並列にテストまたは管理する環境を提供する.
  • ライブラリ管理機能.
  • pomに必要なライブラリ.xmlで定義すると、実行時に必要な他のライブラリが自動的にダウンロードされ、管理されます.
  • 長所

  • コンパイルと構築が同時に可能
  • 管理サーバの導入リソースを提供する環境
  • pom.xmlファイルによる管理により、オープンソースライブラリ、プロジェクトなどの開発、メンテナンス、管理が容易
  • IDEの任意の部分を除去可能
  • 検証されたプロファイル機能により、配置設定ファイルの管理と配置ファイルの作成が可能
  • 短所

  • メイフェンでサポートされていない構築プロセスを追加する必要がある場合は複雑
  • 一部のカード設定が変更された場合、再使用性と拡張性の低下、可読性の低下、繰返し発生
  • これらの欠点を解決するために、Gradleという新しい構築ツール→Androidアプリケーション基本構築ツール
  • こうぞう



    ファイルの設定


    settings.xml:オーブンを作成するときに、依存関係でライブラリとプラグインを位置決めできます.
    ▶構築ツール用プロファイル
    ▶MAVEN HOME/confカタログ(オーブン設置時提供)
    プロジェクトオブジェクトモデル:プロジェクトオブジェクトモデル
    ▶POMはPOMです.mavenを使用するプロジェクトルートディレクトリにあるxmlを表します.
    ▶項目ごとに1つ、すべての設定、依存性などを知ることができます.
    <?xml version="1.0" encoding="UTF-8"?> <project>
      <!-- model version is always 4.0.0 for Maven 2.x POMs -->
      <modelVersion>4.0.0</modelVersion>
    
      <!-- project coordinates, i.e. a group of values which
           uniquely identify this project -->
    
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1.0</version>
    
      <!-- library dependencies -->
    
      <dependencies>
        <dependency>
    
          <!-- coordinates of the required library -->
    
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
    
          <!-- this dependency is only used for running and compiling tests -->
    
          <scope>test</scope>
    
        </dependency>
      </dependencies>
    </project>

    Reference


    https://namu.wiki/w/Maven
    https://blog.naver.com/dktmrorl/222131777444
    https://ko.wikipedia.org/wiki/アパッチメイビン