ホームページ > Java > &#&チュートリアル > Maven をマスターする: ビルド管理を超えて

Maven をマスターする: ビルド管理を超えて

王林
リリース: 2024-07-17 04:44:19
オリジナル
400 人が閲覧しました

Mastering Maven: Beyond Build Management

Maven は強力なビルド自動化ツールとして広く知られていますが、それだけではありません。これは、ビルド プロセス全体、依存関係の管理、ドキュメントの生成を簡素化する包括的なプロジェクト管理ツールです。この投稿では、Maven のさまざまな側面を調査し、その機能を詳しく理解します。

Maven の主な機能
1.ビルドの生成
2.依存関係の管理
3.ドキュメント

mvn build や mvndeploy などのコマンドを実行すると、Maven はすべての設定を含む pom.xml ファイルを調べ、それに応じて動作します。 pom.xml の構造とその重要性をさらに詳しく見てみましょう。

POM ファイル

``` xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

<!-- Basic project information -->
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<!-- Properties -->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <spring.version>5.2.8.RELEASE</spring.version>
</properties>

<!-- Dependencies -->
<dependencies>
    <!-- Spring Core -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- Spring Context -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- JUnit for testing -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<!-- Build configuration -->
<build>
    <plugins>
        <!-- Compiler plugin -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>${maven.compiler.source}</source>
                <target>${maven.compiler.target}</target>
            </configuration>
        </plugin>
        <!-- Surefire plugin for running tests -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
        </plugin>
    </plugins>
</build>

<!-- Repositories -->
<repositories>
    <repository>
        <id>central</id>
        <url>https://repo.maven.apache.org/maven2</url>
    </repository>
</repositories>

<!-- Distribution management for deployment -->
<distributionManagement>
    <repository>
        <id>releases</id>
        <url>http://repo.mycompany.com/releases</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://repo.mycompany.com/snapshots</url>
    </snapshotRepository>
</distributionManagement>
ログイン後にコピー

POM ファイルをデコードしましょう:

**pom.xml のファイルは特定の XML スキーマ (xsi:schemaLocation: で定義) に従い、Maven が検証する正しい構造に準拠していることが保証されます。以下に例を示します:


<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                             http://maven.apache.org/xsd/maven-4.0.0.xsd">



ログイン後にコピー

主要要素:

  • 親 POM:
    Spring Boot の各 POM ファイルには親 POM があります。親が定義されていない場合は、スーパー POM が親になります。

  • GroupId、ArtifactId、およびバージョン:
    これらの要素は、Maven Central 内のプロジェクトを一意に識別します。


<groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>


ログイン後にコピー
  • プロパティ: pom.xml.
  • 全体で参照できるキーと値のペアを定義します。

<properties>
    <java.version>1.8</java.version>
</properties>

-

ログイン後にコピー
  • リポジトリ: 依存関係をダウンロードする場所を指定します (通常は Maven Central から)。

<repositories>
    <repository>
        <id>central</id>
        <url>https://repo.maven.apache.org/maven2</url>
    </repository>
</repositories>


ログイン後にコピー

依存関係: プロジェクトの依存関係をリストします。


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.3.4.RELEASE</version>
    </dependency>
</dependencies>


ログイン後にコピー
  • ビルド構成: ビルドのプロセスとフェーズを定義します。 そのためには、Maven のビルド ライフサイクルを理解する必要があります。

Maven ビルドのライフサイクル

Maven は、いくつかのフェーズで構成される特定のビルド ライフサイクルに従います。

  1. 検証:
    プロジェクト構造を検証します。

  2. コンパイル:
    Java コードをバイトコード (.class ファイル) に変換し、target/ フォルダーに配置します。

  3. テスト:
    test/ ディレクトリにあるテスト ケースを実行します。

  4. パッケージ:
    コンパイルされたバイトコードから JAR/WAR ファイルを生成し、target/ フォルダーに保存します。

  5. 確認:
    パッケージの整合性をチェックします。

  6. インストール:
    パッケージをローカル リポジトリにインストールします。

  7. デプロイ:

    パッケージをリモート リポジトリにアップロードします。

ビルドプロセスのカスタマイズ:
Maven は、要素を通じて各フェーズに特定の目標を追加する柔軟性を提供します。プラグインを作成して使用して、Maven の機能を拡張することもできます。


<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>



ログイン後にコピー

*Maven でインストール: *
テスト、パッケージ化、検証が完了した後、コンパイル段階で作成した jar ファイルをインストールします。
ここでは、すべての依存関係が保存される m2 フォルダーが作成されます。このフォルダーの場所は、

の settings.xml から変更できます。

Maven を使用したデプロイ
デプロイメント構成は要素内で指定されます。


<distributionManagement>
    <repository>
        <id>internal.repo</id>
        <url>http://repo.mycompany.com/maven2</url>
    </repository>
</distributionManagement>



ログイン後にコピー

ヒント: .m2/repository フォルダー内の settings.xml で資格情報を指定できます。

Maven を常に最新の状態に保ち、そのニュアンスをマスターすると、プロジェクト管理が大幅に強化され、自動化スキルが構築されます。 Maven は単なるビルド ツールではなく、プロジェクトのコマンド センターであることを忘れないでください。深く掘り下げて新しいプラグインを探索し、実験を続けてください。 Maven を活用すればするほど、開発プロセスはより強力になります。限界を押し広げ続け、残りは Maven に任せましょう。結局のところ、それはプロジェクト管理のニーズに応えるスイス アーミー ナイフを持っているようなものです!

お読みいただきありがとうございます。貴重なご意見をお待ちしております。
また、素晴らしいプラグインを見つけたら、コメント欄で教えてください。
「いいね!」、共有、購読することを忘れないでください。

以上がMaven をマスターする: ビルド管理を超えての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート