絵、学校の科学プロジェクトマネジメントの成果物Mavenを開始します!

「?学習のJava開発者はMavenを学ぶ必要がある必要はありません」:ジャワのMavenの開発を扱うときにはほとんど知っているで見られる前に、質問が提起されたレス行うための強力なツールを構築するためのMaven Javaプロジェクトは、私はそれを学ぶ必要があるだろうと思うが、この工欲善其事必先利其器それはその理由ですが、また、ソフトウェアツールの開発を置くことを学ぶために事半功倍ああ。だから、最近はほとんどの時間を費やし、Mavenのの基本は脳に編成しました:

この文書では、主に次のようにおおよその記事を読み、Mavenのの概念のいくつかを紹介します。

  • インストールの達人
  • 設定のmaven
  • Mavenのコマンド構文
  • 建設・コレクション・サイクルの達人

例えば、以下の設定セクションに依存、プラグイン、およびその後に組織のようないくつかの他の高度な機能を残しました。

Mavenをインストールします

Mavenをインストールするには、インストールすることを確認する前に速い、作る、非常にシンプルであるJAVA_HOMEJDKのホームディレクトリに環境変数ポイントが使用できるechoコマンドの出力JAVA_HOMEディレクトリを:

echo $JAVA_HOME
复制代码

出力が空の記述がある場合にJAVA_HOME提供されていないか、ポイントに正しくない、あなたが使用することができるexport派生JAVA_HOME変数を:

export JAVA_HOME=/path/to/java_home/
复制代码

以下のためにJAVA_HOME力に変数ブーツ、それはすることができますJAVA_HOME=/path/to/java_home/に配置された.profileか、.bash_profileマシン環境によって異なります。

設定するJAVA_HOME環境変数を、あなたはMavenをインストールすることができます。

  1. ダウンロードapache-maven-3.6.3-bin.zip
  2. 使用しunzip抽出するためにコマンドをapache-maven-3.6.3-bin.zip圧縮したファイルを
  3. 追加MAVEN_HOMEアンパックを指して、環境変数をapache-maven-3.6.3-binディレクトリ
  4. ウィルMAVEN_HOME/binの追加PATH環境変数を

ダウンロードMavenの

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip
复制代码

解凍のMaven

unzip apache-maven-3.6.3-bin.zip
复制代码

セットMAVEN_HOMEの環境変数

cd apache-maven-3.6.3
pwd #查看当前目录
export MAVEN_HOME=/Users/yjwfn/bin/apache-maven-3.6.3
复制代码

セットPATHの環境変数

export PATH=$PATH:$MAVEN_HOME/bin
复制代码

もっとちょうど現在の設定よりもshell终端生效、あなたが上記のコマンド置く必要があるたびに自動的に起動するように設定、~/.bash_profileまたは~/.profile紙の使用中に~/.bash_profile(別のマシン名は異なるものになります、Linuxが一般的に呼ばれています~/.profile):

vi ~/.bash_profile
复制代码

ファイルに次のコマンドをコピーします。

export MAVEN_HOME=/Users/yjwfn/bin/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
复制代码

インストールの確認

使用which mvnインストールが正しいことを確認するためのコマンド、出力表示mvn位置が正確です:

liuweideMacBook-Pro:bin yjwfn$ which mvn
/Users/yjwfn/bin/apache-maven-3.6.3/bin/mvn
复制代码

使用するmvn -v(一部のシステムは、Mavenのが付属しているので)閲覧インストールMavenのバージョンは正しいです。

liuweideMacBook-Pro:bin yjwfn$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/yjwfn/bin/apache-maven-3.6.3
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
复制代码

ファイル名を指定して実行Mavenの

実行Mavenによって、基本的なスタイルのコマンドをoptionsgoal(s)phase(s)で構成さ:

mvn [options] [<goal(s)>] [<phase(s)>]
复制代码

すべてをoptions使用することができますmvn -h表示するには:

liuweideMacBook-Pro:bin yjwfn$ mvn -h

usage: mvn [options] [<goal(s)>] [<phase(s)>]

Options:
 -am,--also-make                        If project list is specified, also
 ....
复制代码

Mavenコマンドのフォーカスがあるgoal(s)phase(s)これら二つの概念、ノートの文字通りの意味は、ステージを意味する、目標です。これらを使用すると、別の概念life cycles関連では、後に詳細に説明しました。今だけ理解する必要がありMaven、複数でコマンドをoptionsgoal(s)phase(s)組成物。

Mavenの設定

Mavenのあなたがの設定を変更することができる3つの場所があります:

  • MAVEN_OPTS 环境变量:グローバルにMaven、このようなJVMの設定パラメータとして提供追加オプション、-Xms256m -Xmx512m
  • settings.xml:ファイルに位置USER_HOME/.m2を超えるために、ディレクトリMaven統一構成アイテムを提供
  • .mvnディレクトリ:ディレクトリビットプロジェクトディレクトリのルートディレクトリには、隠されたファイルです
    • extensions.xml
    • maven.config
    • jvm.config

MAVEN_OPTSの使用

MAVEN_OPTSデフォルトは空で、環境変数です。テストするには、MAVEN_OPTSセットを-h

export MAVEN_OPTS=-h #加个-h选项
复制代码

そして、実行mvnタスクの使用状況を出力しますパラメータを指定せずに:

用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
复制代码

注:この詳しく見はusage、実際にJavaコマンド出力ですjava -h

iuweideMacBook-Pro:bin yjwfn$ java -h
用法: java [-options] class [args...]
           (执行类)
   或  java [-options] -jar jarfile [args...]
           (执行 jar 文件)
复制代码

テストjava -hMAVEN_OPTSセット-hしてから行うmvnプリントしたときので、同じことをMAVEN_OPTS誰もがそれを使用する方法を知っている必要があります!JVMに渡される引数MAVEN_OPTS変数の設定

settings.xmlファイル

settings.xml これは、2つのアドレスに配置することができます。

  • $MAVEN_HOME/conf/settings.xml
  • USER_HOME/.m2

$MAVEN_HOMEセットの環境変数へのインストール手順で、settings.xmlロードは開くことができます--debug表示するためのオプションを:

mvn --debug
# 部分控制台输出
[DEBUG] Reading global settings from /Users/yjwfn/bin/apache-maven-3.6.3/conf/settings.xml
[DEBUG] Reading user settings from /Users/yjwfn/.m2/settings.xml
复制代码

このようなコンソール出力、意志など$MAVEN_HOMEUSER_HOME/.m22つのでの負荷settings.xmlのファイル。settings.xml設定項目が非常に大きい、詳細な説明は、公式ドキュメントを閲覧することはできません。

.mvnディレクトリ

.mvnプロジェクトのルートディレクトリにあり、プロジェクトレベルの設定は、一般的に3つのプロファイルで構成されています。

  • extensions.xml
  • maven.config
  • jvm.config
Mavenの拡張機能

extensions.xmlより簡単に使用するために、開発者を有効にすることですExtensions設定ファイルを作成する機能がExtensions追加するためのライブラリであるCore Classloader方法をMaven四つのカテゴリーがあるSystem Classloader -> Core Classloader -> Plugin Classloaders -> Custom Classloadersため、CloassLoader両方の両親の代理人モードはそれほどに追加する、Core Classloaderにすることができ、ライブラリPlugin ClassloadersCustom Classloaders使用:

extensions.xml設定デモ:

extensions.xmlこの設定ファイルは、ライブラリに追加する必要があるものを宣言することでCore Classloader、次のステートメントをされるguavaに追加Core Classloader中:

<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
  <extension>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>23.0</version>
  </extension>
</extensions>
复制代码
maven.config

maven.config主な実装に共通するオプションを追加するために使用mvn命令するmaven.configコマンドに対するコマンドの設定オプションを。

次のように、maven.configファイルを作成します。

-v
复制代码

直接実行mvnオプションなしで、以来、maven.configある-vプレイがコンテンツであるので、オプションmvn -v

liuweideMacBook-Pro:.mvn yjwfn$ mvn
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Users/yjwfn/bin/apache-maven-3.6.3
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
liuweideMacBook-Pro:.mvn yjwfn$
复制代码
jvm.config

jvm.configJVMは、それが言うことではない理解することは簡単ですが、設定ファイルのパラメータです。

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

构建生命周期Mavenのがコンセプトのコアに比べて、ビルドMavenは3組み込まれているライフサイクルでした:cleandefaultsite

建設相(ビルドフェーズ)

Mavenのではライフサイクルは、一連で構成Build Phase成分、およびそれぞれのライフサイクルの多くを持つことになりますBuild Phaseなどのdefaultライフサイクルは次のように構成さBuild Phaseコンポーネント:

  • 検証 - 確認プロジェクトが正しく、すべての必要な情報が用意されています
  • コンパイル - プロジェクトのソースコードをコンパイル
  • 試験 - ソースコードをコンパイルした後、適切なテストユニットテストフレームワークを使用して。これらのテストは、コードまたは展開パッケージを要求されていません
  • パッケージ - コンパイルされたコードの取得、及びパッケージ形式は、例えば、JARファイルを配布することができます。
  • 検証 - 任意の検査の統合テストの結果を品質基準の遵守を確保するために、
  • インストール - 他のローカルプロジェクトの依存関係として、ローカルリポジトリにパッケージをインストールします
  • 展開は - ビルド環境で完了し、他の開発者やプロジェクトを共有するためのリモートリポジトリへの最終的なパッケージをコピーします。

(ここには示されていないプラス、他のライフサイクルステージ)ライフサイクルステージが完了するために実行されるdefaultライフサイクルを。使用している場合ことを意味し、上記のライフサイクルのステージ、与えられたdefaultライフサイクルを、Mavenのは、最初に検証して、ソースコードをコンパイルしようとされますが、ソースコードは、テスト実行のためにある、ソースを実行するためのバイナリファイル(例えば瓶)、統合テストソフトウェアを詰めパッケージには、統合テストは、実績のあるソフトウェアパッケージのローカルリポジトリにインストールされますを確認し、[リモートリポジトリにインストールされたパッケージを展開します。

ターゲットをプラグ(プラグインの目標)

Build Phaseただ、いくつかのソフトウェアのビルド・プロセスを定義し、それがビルドプロセスで実装されているプロジェクト、ビルドするために直接行かない插件行うには、建物のライフサイクルを理解することができますステージを構築する複数のライフサイクルを、各ステージが構築されます複数のプラグイン・ターゲットは結合、マップとそれらの間の関係を示しています。

図面はjar:jarinstall:installされているplugin:goalコロンはターゲット名に続くプラグ部名は、前に、意味します。上記のグラフから分かるように、実行mvn installコマンドが実行されたときdefaultのライフサイクルにinstallステージ(ステージながら実行するインストール前に)ので、install:installターゲットがバインドされているinstall phaseので、install:install目標が実行されるを通してように、installパッケージを完成する機能プラグイン。

概要

Mavenのは、ツールの次の世代を構築するために人気のビルドツールですGradle、Mavenのから借りているいくつかのポイントがあります。本文中で言及したポイントは、Mavenのツールの知識の一部にすぎない、Mavenのは、次のような多くの強力な機能があります:依存関係の管理は、プラグイン管理、エンジニアリング、多機能、その後の再編成あなたと共有するこれらの高度な機能を。


いいえ公共ん第一線のインターネット企業のアプリケーションアーキテクチャ(高可用性、高性能、高い安定性)、ビッグデータ、機械学習、Javaのアーキテクチャの様々な人気のあるエリアを含む「アーキテクチャダイジェスト」良い重いテキストアーキテクチャの運動会、。

おすすめ

転載: juejin.im/post/5df86d3951882512546efc6a
おすすめ