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>
<properties> <java.version>1.8</java.version> </properties> -
<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 は、いくつかのフェーズで構成される特定のビルド ライフサイクルに従います。
検証:
プロジェクト構造を検証します。
コンパイル:
Java コードをバイトコード (.class ファイル) に変換し、target/ フォルダーに配置します。
テスト:
test/ ディレクトリにあるテスト ケースを実行します。
パッケージ:
コンパイルされたバイトコードから JAR/WAR ファイルを生成し、target/ フォルダーに保存します。
確認:
パッケージの整合性をチェックします。
インストール:
パッケージをローカル リポジトリにインストールします。
デプロイ:
パッケージをリモート リポジトリにアップロードします。
ビルドプロセスのカスタマイズ:
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 フォルダーが作成されます。このフォルダーの場所は、
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 サイトの他の関連記事を参照してください。