1。メイベンとは何ですか
MavenはJavaで開発されたプロジェクト構築ツールです。プロジェクトの建設プロセス中に編集、テスト、公開、およびドキュメントを自動化することができ、プログラマーの展開負担を大幅に削減できます。
2. Mavenをインストールします
Mavenのインストールは非常に簡単です。公式のMavenページにアクセスして、http://maven.apache.org/download.cgiをダウンロードしてください
ダウンロード後、M2_HOME環境変数を構成し、端子でMVN -Versionを実行します。正しい出力プロンプトが表示されたら、Mavenがインストールされます。
3。メイベンの基本概念
Mavenの核となるアイデアはPOM、つまりProject Objectモデルです。 POMファイルは、XMLファイルの形式でMavenプロジェクトで使用されるリソース(ソースコード、依存関係、テストなど)を説明しています。次の図は、POMファイルの構造と、MavenがPOMファイルをどのように呼び出すかを説明しています。
Mavenコマンドが実行されると、POMファイルが渡され、MavenはPOMで説明されているリソースで実行されます
POMファイル:
<Project XMLNS = "http://maven.apache.org/pom/4.0.0" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation = "http://maven.apach/4.0. http://maven.apache.org/xsd/maven-4.0.0.0.xsd "> <modelversion> 4.0.0 </modelversion> <! - basics-> <groupid> ... </groupid> <artifactid> ... </artifactid> <バージョン> ... <parent> ... </parent> <DependencyManagement> ... </DependencyManagement> <モジュール> ... </モジュール> <プロパティ> </プロパティ> <! - ビルド設定 - > <build> </build> <報告> ... </レポート> </</<! - プロジェクト情報 - > <名前> ... <ライセンス> ... </ライセンス> <組織> ... </組織> <開発者> ... </開発者> <寄稿者> <寄稿者> ... </貢献者> <! - 環境設定 - > <発行管理> ... </cimanagement> <mailinglists> ... <前提条件> ... </前提条件> ... </リポジトリ> <リポジトリ> ... </repositories> <PluginRepositories> ... </PlaginRepositories> ... <DistributionManagement> ... </distributionManagement> <プロファイル> ... </プロファイル> </プロジェクト>
ModelVersionはPOMモデルバージョンで、4.0.0はMaven2と3をサポートしています
Maven Coordinates(Maven Coordinates)
(1)GroupID:それは組織またはプロジェクトの一意のIDです。ほとんどの場合、com.pastqingなど、プロジェクトのJavaパッケージのルート名をGroupIDとして使用します
(2)Artifactid:これは、構築されているプロジェクトの名前です。たとえば、支払いシステムArtifactidはWeb-Payです。 Artifactidは、MavenリポジトリのGroupIDディレクトリの下にあるサブディレクトリ名です
(3)バージョン:名前がプロジェクトの発行のバージョン番号を意味するように
上記の3つの項目は、ビルド結果の名前の一部です。プロジェクトが構築された後、JARパッケージが生成されます。 Mavenリポジトリにあるパスは、maven_repo/com/pastqing/web-pay/1.0/web-pay-1.0.jarです
4. Mavenで構築されたHello World Javaプロジェクト
Mavenプラグインアーキタイプを使用してプロジェクトを構築します。
端末から作業ディレクトリを開き、コマンドを実行します。
MVNアーキタイプ:生成
、最初に実行されるのは、Maven Centralリポジトリから関連するプロジェクトプロトタイプを初めてダウンロードする必要があるため、遅いです。ダウンロード後、プロジェクトモデルが選択され、GroupID、Artifactid、バージョンなどが入力されます。建設が完了した後、成功プロンプトがあります。
プロジェクトのパッケージング:プロジェクトルートディレクトリに切り替えて、MVNパッケージを実行します。パッケージが成功した後、プロジェクトは生成されたJARファイルとクラスファイルを備えたターゲットフォルダーを生成します。
JARファイルを実行します:
Java -CP Target/Helloworld-1.0-Snapshot.jar com.pastqing.app
この時点で、Mavenによって構築された最も単純なJavaプロジェクトが完了しました。
5。Mavenで構築されたJava-Webプロジェクト
Webプロジェクトの生成は、基本的にJavaプロジェクトの生成に似ていますが、使用されるモデルは異なります。ここでは説明しません。 TomcatまたはJettyプラグインを使用してWebプロジェクトを実行する方法について話しましょう。ここでは、Tomcatを例に取ります。
Maven Tomcatプラグインのインストール:http://tomcat.apache.org/maven-plugin-2.2/
WebプロジェクトのPOMファイルに次のプラグイン情報を追加します
<Plugin> <groupid> org.apache.tomcat.maven </groupid> <artifactid> tomcat6-maven-plugin </artifactid> <version> 2.2 </version> </plugin> <groupid> org.apache.tomcat.maven <バージョン> 2.2 </version> </plugin>
このようにして、TomcatのMavenプラグインを統合しているため、サービスを展開して開始するには1つのコマンドのみが必要です。コマンドは次のとおりです。
MVN Tomcat:実行
(tomcat6)
MVN Tomcat7:実行
(tomcat7)
Tomcat Mavenプラグインを使用した外部Tomcatへの自動展開
上記の自動展開では、Mavenに埋め込まれたTomcatが使用されます。次に、POMファイルを変更して、プロジェクトを外部Tomcatに展開できるようにします。
プロジェクトPOMファイルを変更し、サーバー構成情報を追加します
<プラグイン> <groupid> org.apache.tomcat.maven </groupid> <artifactid> tomcat7-maven-plugin </artifactid> <version> 2.2 </version> <configuration> <url> http:// localhost:8080/manager/manage> url> <server> <server> <server> <server> <server> <server> <server> <server> <server> <server> <server> <server> <server> <server> <sert7 <パスワード> admin </password> </configuration> </plugin>
サーバー、ユーザー名、およびパスワードの値は、%maven_homeのset.xmlでサーバー、ユーザー名、およびパスワードに1つずつ対応しています。
外部Tomcatを起動し、コマンドmvn tomcat7:redeployを実行します
6. Mavenでマルチモジュールプロジェクトを構築する方法
1。親pom
すべてのMaven POMファイルは、親POMから継承されます。親POMが指定されていない場合、POMファイルはルートPOMから継承されます。 POMファイルの統合関係を以下の図に示します。
1つのPOMファイルを別のPOMファイルを明示的に継承することができます。このようにして、すべての子POMファイルの設定は、パブリックペアレントPOMファイルの設定を変更することで変更できます。ここでは、親タグを使用して親POMを定義します。マルチモジュールMavneプロジェクトを構築しましょう
2。プロジェクトディレクトリ構造を構築します
EducationCloudと呼ばれるMaven-Webプロジェクトを作成します。次に、プロジェクトディレクトリにいくつかのフォルダーを作成して、モジュールを分割します。彼らは教育親選手(親モジュール)、教育コア(ビジネス)、教育専門性(エンティティ)、教育WEB(Webサービス)です
ディレクトリ部門はニーズに応じて分割できます。私の部門は上記のとおりです
3.POMファイルを変更します
モジュールタグを使用してモジュールを分割します。ルートディレクトリでPOMファイルを開き、Moudleタグを追加します。
<?xml version = "1.0" encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sdsd"> <modeleversion> 4.0.0 </modelversion> <artifid </groupid> </groupid> <バージョン> 1.0-Snapshot </version> <packaging> pom </packaging> <modules> <odule> suduce-parent </module> <odule> education-core </module> <module> education-entity </module> <module> education-web </module> </module> <name> educationcloud </name> </project>
ここでは、パッケージタグについて説明します。最も一般的なものは、瓶、戦争としてパッケージ化することです。 Mavenプロジェクトは、POMファイルのパッケージ要素を定義する必要があります。要素が宣言されていない場合、デフォルトでは瓶としてパッケージ化されます。定義値が戦争の場合、それは戦争パッケージとしてパッケージ化されます。値がPOMの場合、パッケージは生成されません(通常、親モジュールで使用されます)。
各モジュールに親タグを追加します。
親タグは、親POMの座標位置を定義するために使用され、次のように定義されます。
<parent> <groupId> com.educationCloud </groupId> <artifactid> educationcloud-parent </artifactid> <バージョン> 1.0-snapshot </version> <reatarypath> </relativepath> </parent>
GroupID、AritFactID、バージョンは、親POMの位置情報を表す要素です。 RelativePathは、親POMの位置を表す相対パスです。デフォルトは../pom.xmlです。ここでは、GroupID、aritactid、バージョンが親POMファイルに対応する必要があることに注意する必要があります。
依存関係管理を使用して、プロジェクト内のすべての依存関係を管理します。依存関係を均一に管理するために、親プロジェクトモジュールのPOMファイルで依存関係を使用して、プロジェクト内のすべての依存関係を宣言します。このようにして、他のサブプロジェクトの依存関係を参照する場合、バージョン番号は省略でき、変更も簡単です。
親プロジェクトモジュールのPOMファイルを書きます** EducationCloud-Parent、次のように追加します。
プラグインマネージメントを使用して、プロジェクトのMavenプラグインを管理します。 Mavenコンピレーションプラグイン、パッケージングプラグインなど、プロジェクトのMavenプラグインを均一に管理するために、その構成情報など、管理プロジェクトPOMファイルにプラグインマネージメントを追加します。このようにして、すべてのサブモジュールで参照されるプラグインは均一に処理され、以下が追加されます。
<プラグマネージメント> <プラグイン> <! - Complile Plugin Configuration-> <Plugin> <groupId> org.apache.maven.plugins </groupid> <artifactid> maven-complier-plugin </artifactid> <バージョン> 3.3 </バージョン> <構成> <ソース> <ソース> </configuration> <plugin> </plugins> </pluginmanagement>
上にJDK1.7でコンパイルされたMavenコンピレーションプラグインの構成を追加しました。保存後、各サブモジュールの有効なPOMに対応する変更が表示されます。
プロパティタグを使用して定数を定義します。
各依存関係のバージョン番号を異なる定数として定義するため、将来の変更に便利です。
<properties> <jdkversion> 1.7 </jdkversion> <servletversion> 3.1.0 </servletversion> <mysqlversion> 5.1.34 </mysqlversion> <junitversion> 4.12 </junitversion> <defaultencoding> utf-8 <
引用するときは、$ {jdkversion}の形式を使用してください。
上記のすべての操作はIDEで操作できるため、より便利でシンプルにすることに注意してください。