Mavenの詳細なコンパイル

3層アーキテクチャ

ここに画像の説明を挿入

現在の技術の問題

  1. プロジェクトはプロジェクトです
    • プロジェクトが大きすぎるため、モジュールをパッケージで分割することは適切ではありません
    • Mavenの助けを借りて、プロジェクトを複数のプロジェクトに分割できます
  2. プロジェクトに必要なjarパッケージは、手動で「コピー」してWEB-INF / libディレクトリに「貼り付ける」必要があります。
    • 同じjarパッケージが異なるプロジェクトに表示され、無駄なスペースも肥大化します
    • Mavenの助けを借りて、jarパッケージを「ウェアハウス」に格納でき、必要なプロジェクトがこのファイルインターフェイスを「参照」できます。
  3. jarパッケージには、準備するか、公式Webサイトからダウンロードする人が必要です。
    • 一部のテクノロジーの公式Webサイトでは、MavenやSVNなどの特別なツールを介してダウンロードを提供しています。
    • ダウンロードしたjarパッケージが標準化されていない場合があります
    • Mavenの助けを借りて、標準化された方法でjarパッケージをダウンロードでき、すべてのよく知られたフレームワークはMavenの中央倉庫に保管されます。
  4. jarパッケージが依存する他のjarパッケージも、自分でプロジェクトに手動で追加する必要があります
    • jarパッケージ間のすべての依存関係を理解する必要がある場合、ワークロードは膨大になります

Mavenとは

  • Mavenは、Javaプラットフォーム用の自動ビルドツールです。
  • jarファイルを自動的に管理する
  • jarパッケージが依存するjarパッケージを自動的にダウンロードします
  • 要するに、上記の問題は解決することができます

構築する

ビルドは、プロジェクトコードのコンパイル、テスト、実行、パッケージ化、および展開を完了するためのほんの数ステップです。

  1. クリーンアップ:前のプロジェクトから変更されたものを削除し、新しいコンパイル済みコードの準備をします
  2. コンパイル:プログラムソースファイルを実行可能ファイル、java–> class file(バッチ)にコンパイルします。
  3. テスト:プログラムコードを実行して、機能が正しいかどうかを確認できます(バッチ)
  4. レポート:テスト結果のファイルを生成します
  5. パッケージ化:すべてのクラスファイルと構成ファイルを圧縮パッケージに圧縮します。Javaプログラムファイルの圧縮ファイルの拡張子は.jarで、Webファイルの圧縮ファイルの拡張子は.warです。
  6. インストール:jarファイルとwarファイルをローカルウェアハウスにインストールします

キーコンセプト

  1. POM:ファイルpom.xml、、プロジェクトオブジェクトモデル
  2. 従来のディレクトリ構造:Mavenプロジェクトのディレクトリとファイルの場所が指定されています
  3. 座標:リソースを表すために使用される一意の文字列です
  4. 依存関係の管理:jarファイルは管理プロジェクトに使用できます
  5. 倉庫管理:リソースの保管
  6. ライフサイクル:プロジェクトを構築するプロセス
  7. プラグインと目標:Mavenビルドを実行するときに使用されるツールはプラグインです

インストール

  • ダウンロードリンク:http//maven.apache.org/download.cgi
  • 環境変数を構成する
    • M2_HOME=E:\MavenProject\Maven\apache-maven-3.6\apache-maven-3.6.3
    • M2_HOMEそれに変数を追加しますPath%M2_HOME%\bin;
    • 注場合は、そのJAVA_HOME環境変数が正しく設定されていない、エラーが発生しますので、設定しjdk
  • テスト
    • cmdウィンドウにmvn -vコマンド入力します
  • デフォルトのダウンロードアドレス
    • デフォルトの倉庫:C:\Users\DELL\.m2\repository
  • ダウンロードpom.xmlするディレクトリのコマンドラインウィンドウコマンドを入力mvn compileします

倉庫分類

  • Mavenプラグイン(jarパッケージ)
  • サードパーティのjarパッケージ

  • 地元の倉庫
  • リモートウェアハウス(インターネット上)
    • 中央倉庫https://repo.maven.apache.org
    • 中央倉庫のミラーリング(重要な都市)
    • プライベートサーバー(社内)

使用:ローカルマシン->プライベートサーバー->ミラーリング->中央倉庫

Mavenが合意したディレクトリ構造

  • src
    • main:メインプログラムjavaコードと構成ファイル
      • java:パッケージとパッケージ内のjavaファイル
      • resourcesjavaプログラムで使用する設定ファイル
    • テストテストプログラムコード
      • java:パッケージとパッケージ内のjavaファイルをテストします
      • resourcesjavaプログラムで使用する設定ファイル
  • pom.xmlMavenコアファイル(必須)

テスト

新しいトップディレクトリを作成し、新しいjavaファイルを作成してから、プロジェクトtarger/classesディレクトリの下にjavaディレクトリをコンパイルしclassます。ファイルをコンパイルした後、このディレクトリにファイルが生成されます。

package com.atgw;/*
 *  @author GaoWei
 *  Date  2021/1/22--19:53
 */

public class HelloMaven {
    
    

    public int add(int n1,int n2){
    
    
        return n1+n2;
    }

    public static void main(String[] args) {
    
    
        HelloMaven hello = new HelloMaven();
        int res = hello.add(10,20);
        System.out.println("10+20="+res);
    }
}

クラスディレクトリcmdにコマンドを入力し、次のコマンドを入力して上記のプログラムを実行します

java com.atgw.HelloMaven

リソースを保存するマシンのディレクトリの場所を設定します

  1. Maven構成ファイルを変更する

    • maven安装目录/conf/settings.xml
    • バックアップsettings.xml
  2. settings.xml修正しているE:\MavenProject\Maven\maven_repository(中国語では表示されません)

      <!-- localRepository
       | The path to the local repository maven will use to store artifacts.
       |
       | Default: ${user.home}/.m2/repository
      <localRepository>/path/to/local/repo</localRepository>
      -->
    
    <!--配置本地仓库位置-->
    <localRepository>E:/MavenProject/Maven/maven_repository</localRepository>
    

pom.xmlファイル

座標

このURLで座標を見つけますhttps://mvnrepository.com/

modelVersion バージョン4.0.0
groupId 組織ID、通常は会社のドメイン名の逆(com.baidu)
artifactId 題名
version プロジェクトのバージョン番号
packaging 梱包および圧縮後の入力(jar、warなど)

groupIdartifactIdversion集合(ユニーク)座標と称される

	<groupId>com.atgw</groupId>
	<artifactId>Hello</artifactId>
	<version>0.0.1-SNAPSHOT</version>

頼る

次の座標に従ってローカルウェアハウス内の関連リソースをクエリします。つまり、jarパッケージをプロジェクトに参照します。

<dependencies>
    <dependency>
		<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${atguigu.spring.version}</version>
	</dependency>
</dependencies>
  • properties:プロパティを設定する
  • build:ビルドに関連する構成

ライフサイクル、コマンド、プラグイン

ライフサイクル

  • プロジェクトを構築するプロセス
  • 掃除
  • コンパイル
  • テスト
  • 報告する
  • ベール
  • インストール
  • デプロイ

コマンドを使用して上記のライフサイクルを実行します

コマンドを実行すると、プラグイン(jarパッケージ、クラスファイル)が実際に実行されます。

一般的なコマンド

mvn clean 以前のコンパイルとテストで生成されたディレクトリをクリアします
mvn compile メインプログラムのコンパイル
コンパイルmain/java/のディレクトリjavaにファイルをclassすると同時に、ファイルclassにファイルをコピーしtarget/classesたディレクトリ
main/resourcesディレクトリ内のすべてのファイルにコピーされtarget/classesたディレクトリ
mvn test-compile テストプログラムをコンパイルする
mvn test テストコードを実行します(事前にコンパイルする必要はありません。前のコマンドプロセスが自動的に実行されます)
mvn package メインプログラムをパッケージ化する
mvn install 以前にパッケージ化されたファイルをローカルウェアハウスにインストールします

IDEAで使用

次のリンクでは、一般的なプロジェクトとWebプロジェクトを作成するプロセスについて詳しく説明しています。

http://www.cnblogs.com/wql025/p/5215570.html


  • Mavenは組み込みのアイデアですが、Mavenの設定を変更するのは便利ではないため、通常、組み込みは使用されません。

  • 自分でインストールしたMavenを使用するには、ideaのデフォルト設定を上書きし、ideaにMavenのインストール場所やその他の情報を指定させる必要があります。

構成エントリ

  1. 現在のプロジェクト設定を構成する
  2. 次に、他の設定で新しいプロジェクトを作成します

ここに画像の説明を挿入

ここに画像の説明を挿入

seモジュールの作成

ここに画像の説明を挿入

ここに画像の説明を挿入

スキル

ここに画像の説明を挿入

pom.xmlファイルの更新

pomファイルを設定した後、更新されないために赤いプロンプト行が表示されることがあります

  • 単一プロジェクトの更新

ここに画像の説明を挿入

  • すべてのプロジェクトを更新する

ここに画像の説明を挿入

ファイルの種類を設定する

ここに画像の説明を挿入

インポートモジュール

ここに画像の説明を挿入

ここに画像の説明を挿入


従属範囲

Mavenビルドプロジェクトのどのフェーズが機能するかを示します

  • ラベル
<!--表示junit只在测试阶段起作用-->    
<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
テスト コンパイル(デフォルト)
使用するすべてのjarパッケージは自分で持参する必要があります
提供されている
場合、持参しないでください
メインプログラムに有効ですか 番号 はい はい
テスト手順が効果的かどうか はい はい はい
パッケージングに参加するかどうか 番号 はい 番号
展開に参加するかどうか 番号 はい 番号

一般的な操作

プロパティ設定

    <properties>
        <!--maven构建项目使用编码,避免中文乱码-->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--编译代码使用的jdk版本-->
        <maven.compiler.source>1.8</maven.compiler.source>
        <!--执行代码的jdk版本-->
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

グローバル変数

<properties>
	<!--自定义变量-->
    <spring-vision>5.2.2</spring-vision>
</properties>
  • 定義後、以下の値を参照する場合${spring-vision}

リソースプラグイン

  • デフォルトresources使用されていない場合、mavenコンパイルされたコードが実行されるsrc/main/resourcesと、target/classesディレクトリ内のファイルはディレクトリコピーされます。ディレクトリ内のsrc/main/javajavaファイルは処理されず、target/classesディレクトリにコピーされません。

  • プログラムはsrc/main/javaディレクトリにいくつかのファイルを配置する必要がありますjavaプログラムを実行するときはsrc/main/java、ディレクトリ内のファイル(プロパティ構成ファイルなど)を使用する必要があります。ディレクトリmavenmvn compile src/mian/javaのファイルを通知する必要がある場合は、ファイルを一緒target/classesにディレクトリにコピーする必要があり、で構成する必要があります。

  •     <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes><!--目录下的 .properties, .xml文件都会扫描到-->
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <!--filtering = false 表示不启用过滤器,,.*properties已经起到过滤的作用了-->
                    <filtering>false</filtering>
                </resource>
            </resources>
        </build>
    

おすすめ

転載: blog.csdn.net/weixin_46250447/article/details/113065702