Mavenチュートリアル:始めるために知っておくべきことすべて



Mavenチュートリアルに関するこのブログでは、プロジェクトを構築するためにMavenを使い始めるために知っておく必要のあるすべてをカバーしています。

プロジェクトをビルドして依存関係を手動でダウンロードするための長いスクリプトを作成する代わりに、Mavenを使用してこの混乱を取り除いてください。 Mavenチュートリアルに関するこのブログでは、プロジェクトでMavenの使用を開始するために必要なすべてをカバーしています。このMavenチュートリアルを完全に理解した後、次の可能なステップは、の継続的インテグレーションフェーズをカバーするJenkinsを学習することです。 。

Mavenチュートリアルに関するこのブログでは、次のトピックについて説明します。

  1. なぜMavenが必要なのですか?
  2. Mavenとは何ですか?
  3. Mavenアーキテクチャ
  4. Mavenのライフサイクル、フェーズ、および目標
  5. デモプロジェクト。

なぜMavenが必要なのですか?

Javaプロジェクトで作業している場合、ほとんどの場合、依存関係が必要です。依存関係は、ライブラリまたはJARファイルに他なりません。それらを手動でダウンロードして追加する必要があります。また、プロジェクトのソフトウェアスタックをアップグレードするタスクは、Mavenの前に手動で実行されていました。そのため、このような問題を処理するより優れたビルドツールが必要でした。





ここでMavenが登場します。 Mavenは、依存関係に関連するすべての問題を解決できます。依存関係を指定するだけで、Mavenのpom.xmlファイルに必要なソフトウェアバージョンが追加され、残りはMavenが処理します。それでは、Mavenが正確に何であるかを理解してみましょう。

Mavenとは何ですか?

Mavenプロジェクトは、以前はJakartaプロジェクトの一部であったApache SoftwareFoundationによって開発されました。 Mavenは、主にJavaベースのプロジェクトに使用される強力なビルド自動化ツールです。 Mavenは、ソフトウェア構築の2つの重要な側面に取り組むのに役立ちます–



  • ソフトウェアの構築方法について説明します
  • 依存関係について説明します。

Mavenは設定より規約を優先します。 Mavenは、JavaライブラリとMavenプラグインをMaven中央リポジトリなどの1つ以上のリポジトリから動的にダウンロードし、ローカルキャッシュに保存します。ローカルプロジェクトの成果物も、このローカルキャッシュで更新できます。 Mavenは、C#、Ruby、Scala、およびその他の言語で記述されたプロジェクトの構築と管理にも役立ちます。

プロジェクトオブジェクトモデル(POM)ファイルは、プロジェクトに関連する情報と、Mavenがプロジェクトをビルドするために使用する依存関係、ソースディレクトリ、プラグイン、目標などの構成情報を含むXMLファイルです。 mavenコマンドを実行するときは、コマンドを実行するためのPOMファイルをmavenに提供します。 Mavenはpom.xmlファイルを読み取り、その構成と操作を実行します。

Mavenの目的

Mavenの目的

誰かがMavenをいつ使用する必要がありますか?

    1. プロジェクトの依存関係が多すぎる場合。
    2. 依存関係のバージョンが頻繁に更新される場合。
    3. 継続的ビルド、統合、およびテストは、Mavenを使用して簡単に処理できます。
    4. ソースコードからドキュメントを生成する簡単な方法が必要な場合は、ソースコードをコンパイルし、コンパイルされたコードをJARファイルまたはZIPファイルにパッケージ化します。

Mavenアーキテクチャ

Mavenのライフサイクル、フェーズ、および目標

1.Mavenのライフサイクル



Mavenがターゲットプロジェクトをデプロイおよび配布するために従う特定のライフサイクルがあります。

3つの組み込みライフサイクルがあります。

  • デフォルト –これは、プロジェクトのデプロイを担当するMavenの主要なライフサイクルです。
  • 掃除 –このライフサイクルは、プロジェクトをクリーンアップし、前のビルドで生成されたすべてのファイルを削除するために使用されます。
  • 地点 –このライフサイクルの目的は、プロジェクトのサイトドキュメントを作成することです。

各ライフサイクルは、一連のフェーズで構成されています。デフォルトのビルドライフサイクルは、Mavenのメインビルドライフサイクルであるため、23フェーズで構成されています

一方、クリーンライフサイクルは3フェーズで構成され、サイトライフサイクルは4フェーズで構成されます。

2.Mavenフェーズ

Mavenフェーズは、Mavenビルドライフサイクルのステージに他なりません。各フェーズは特定のタスクを実行します。

デフォルトのビルドライフサイクルのいくつかの重要なフェーズは次のとおりです–

  • 検証 –このフェーズでは、ビルドに必要なすべての情報が利用可能かどうかを確認します
  • コンパイル –このフェーズでは、ソースコードをコンパイルします
  • テストコンパイル –このフェーズでは、テストソースコードをコンパイルします
  • テスト –このフェーズでは、単体テストを実行します
  • パッケージ –このフェーズでは、コンパイルされたソースコードを配布可能な形式(jar、war)にパッケージ化します。
  • 統合テスト –このフェーズでは、統合テストを実行する必要がある場合、パッケージを処理してデプロイします
  • インストール –このフェーズでは、パッケージをローカルリポジトリにインストールします
  • デプロイ –このフェーズでは、パッケージをリモートリポジトリにコピーします

Mavenは特定の順序でフェーズを実行します。つまり、mvnなどのコマンドを使用して特定のフェーズを実行すると、指定されたフェーズだけでなく、それ以前のすべてのフェーズも実行されます。

たとえば、コマンドmvn deploy、つまりデフォルトのビルドライフサイクルの最後のフェーズであるデプロイフェーズを実行すると、デプロイフェーズの前のすべてのフェーズも実行されます。

3.Mavenの目標

一連の目標はフェーズを構成し、各目標は特定のタスクを実行します。フェーズを実行すると、Mavenはそのフェーズに関連付けられている順序ですべての目標を実行します。使用される構文はplugin:goalです。いくつかのフェーズとそれにバインドされているデフォルトの目標は次のとおりです。

  • コンパイラ:コンパイル–コンパイルフェーズ
  • コンパイラ:テスト–テストコンパイルフェーズ
  • surefire:test –テストフェーズ
  • install:install –インストールフェーズ
  • jarおよびwar:war –パッケージフェーズ

Mavenプラグインは目標のグループです。ただし、これらの目標は必ずしもすべて同じフェーズにバインドされているわけではありません。たとえば、統合テストの実行を担当するMavenフェイルセーフプラグイン。ユニットテストには、Mavenのsurefireプラグインが必要です。

パスにJavaを追加する方法

デモプロジェクト

のこのセクションでは Maven チュートリアルでは、デモプロジェクトを見ていきます。 Mavenを使用してプロジェクトを構築する方法を示すために、私は EclipseIDEを使用したTestNGを伴うJavaプロジェクト。これは非常に単純なプログラムで、Webサイトのタイトルをテストするためのコードを記述しています。

プログラムは自動的にWebブラウザーを起動し、コードに記載されているWebサイトに移動し、そのWebページのタイトルを取得して、予想されるタイトルと比較します。実際のタイトルと予想されるタイトルが一致する場合、テストケースは合格し、そうでない場合は失敗します。

したがって、このプロジェクトには必要です 、MavenおよびEclipseがシステムにダウンロードされました。システムで使用しているバージョンは次のとおりです–

  1. Eclipse – Enterprise Editionバージョン4.12.0(2019-06)
  2. Java –バージョン1.8.0_211
  3. Maven –バージョン3.6.1
  • これとは別に、Eclipse用のTestNGプラグインをダウンロードする必要があり、次の手順を使用してダウンロードできます–
    • Eclipseを開き、ヘルプに移動します。ヘルプで、Eclipseマーケットプレイスをクリックします。
    • [検索]ボックスにTestNGと入力し、[移動]をクリックします。結果には、「TestNGforEclipse」が表示されます。ダウンロードする必要があります。
  • 上記のことでシステムをセットアップすると、Mavenを使用してデモプロジェクトを作成する準備が整います。それで、これを行うために必要なすべてのステップを説明します。
    • Eclipseで、「ファイル」->「新規」->「Mavenプロジェクト」をクリックします。
    • [単純なプロジェクトの作成(アーキタイプの選択をスキップ)]をクリックしてから、[次へ]をクリックします。
  • これで、グループID、アーティファクトIDなどのパラメーターを含むウィンドウが表示されます。
    • グループIDは、プロジェクトを所有するグループの一意のIDです。
    • アーティファクトIDは、最終的なコンパイル単位の名前です。
    • バージョンは、作成されたアーティファクトのバージョンです。 SNAPSHOTは、進行中の作業を示します。
    • パッケージは、プロジェクトに応じて、jar、war、pomのいずれかになります。私たちのプロジェクトでは、jarを選択します。次に、プロジェクトの名前を付けます。

  • プロジェクトを作成すると、Mavenプロジェクトのプロジェクト構造が表示されます。ここでは、次のことを確認できます–
    • pom.xml
    • srcとtarget
    • src / main / java
    • src / test / java
    • Mavenの依存関係
  • 次に、src / main / testにクラスファイルを作成し、DemoClassという名前を付けます。このクラスには、テストに使用しているSeleniumコードが含まれています。これで、Selenium、TestNGの依存関係、MavenコンパイラーおよびSurefireプラグインがpom.xmlファイルに追加されました。 DemoClassとpom.xmlのコードを以下に示します。
パッケージmaven.selenium.testngimport org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test public class DemoClass {@Test public void test()throws InterruptedException {//宣言とオブジェクト/変数のインスタンス化//System.setProperty('webdriver.gecko.driver '、' / home / edureka / Downloads / geckodriver ')// WebDriver driver = new FirefoxDriver()//上記の2行をコメント化し、2未満のコメントを解除しますChromeを使用する行System.setProperty( 'webdriver.chrome.driver'、 'C​​:UsersArvind PhulareDesktopchromedriver.exe')WebDriver driver = new ChromeDriver()String baseUrl = 'http://newtours.demoaut.com/' String expectedTitle = 'ようこそ:Mercury Tours' String actualTitle = '' // Fire foxを起動し、ベースURLに転送しますdriver.get(baseUrl)//タイトルの実際の値を取得しますactualTitle = driver.getTitle()Thread.sleep(3000 )/ * *ページの実際のタイトルを予想されるタイトルと比較し、*結果を「合格」または「不合格」として出力します* / if(actualTitle.contentEquals(expectedTitle)){System.out.println( 'Test Passed!')} else {System.out.println( 'Test Failed')} // Fire fox driver.close()を閉じる}}
4.0.0 maven.selenium maven.selenium.testng 0.0.1-SNAPSHOT EdurekaDemo 2.53.1 6.9.10 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.18 .1 testng.xml org.seleniumhq.selenium selenium-java 3.141.59 org.testng testng 6.14.3 test
  • プロジェクトを実行する前に、クラスファイルDemoClassをTestNGファイルに変換する必要があります。これを行うには、DemoClass –> TestNG-> Convert toTestNGを右クリックします。

  • プロジェクトを実行するには、プロジェクトを右クリックし、[実行]-> [Mavenclean]を選択します。これにより、以前のビルドがすべて削除され、プロジェクトがクリアされます。

  • Mavenをクリーンアップした後、Webアプリケーションをテストするためのコードを記述したので、プロジェクトをテストする必要があります。したがって、プロジェクトを右クリック->実行対象-> Mavenテスト。これにより、Webサイトが開き、Webサイトのタイトルと一致します。一致する場合、テストケースは合格です。

  • コマンドプロンプトを使用して、上記のコマンドを実行することもできます。そのためには、pom.xmlファイルのパスが必要です。

    • パスを取得するには、pom.xmlファイル->プロパティ->場所を右クリックします。
    • パスをコピーし、コマンドプロンプトを開いて、cdを使用してそこに貼り付けます。 cd C:/ Users / Arvind Phulare / eclipse-workspace /maven.selenium.testng。
    • これを行うと、mvncleanやmvntestなどのMavenコマンドを再度入力できます。

これが、Mavenチュートリアルに関するこのブログの私の側からの説明です。このMavenチュートリアルで説明したことをご理解いただけたでしょうか。

このMavenチュートリアルを理解したので、これをチェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 Edureka DevOps認定トレーニングコースは、学習者がDevOpsとは何かを理解し、SDLCの複数のステップを自動化するためのPuppet、Jenkins、Nagios、Ansible、Chef、Saltstack、GITなどのさまざまなDevOpsプロセスとツールに関する専門知識を習得するのに役立ちます。

質問がありますか?このMavenチュートリアルのコメントセクションでそれについて言及してください。折り返しご連絡いたします。