「?学習のJava開発者はMavenを学ぶ必要がある必要はありません」:ジャワのMavenの開発を扱うときにはほとんど知っているで見られる前に、質問が提起されたレス行うための強力なツールを構築するためのMaven Javaプロジェクトは、私はそれを学ぶ必要があるだろうと思うが、この工欲善其事必先利其器
それはその理由ですが、また、ソフトウェアツールの開発を置くことを学ぶために事半功倍
ああ。だから、最近はほとんどの時間を費やし、Mavenのの基本は脳に編成しました:
この文書では、主に次のようにおおよその記事を読み、Mavenのの概念のいくつかを紹介します。
- インストールの達人
- 設定のmaven
- Mavenのコマンド構文
- 建設・コレクション・サイクルの達人
例えば、以下の設定セクションに依存、プラグイン、およびその後に組織のようないくつかの他の高度な機能を残しました。
Mavenをインストールします
Mavenをインストールするには、インストールすることを確認する前に速い、作る、非常にシンプルであるJAVA_HOME
JDKのホームディレクトリに環境変数ポイントが使用できる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をインストールすることができます。
- ダウンロードapache-maven-3.6.3-bin.zip
- 使用し
unzip
抽出するためにコマンドをapache-maven-3.6.3-bin.zip
圧縮したファイルを - 追加
MAVEN_HOME
アンパックを指して、環境変数をapache-maven-3.6.3-bin
ディレクトリ - ウィル
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
によって、基本的なスタイルのコマンドをoptions
、goal(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
、複数でコマンドをoptions
、goal(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 -h
とMAVEN_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_HOME
とUSER_HOME/.m2
2つのでの負荷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 Classloaders
とCustom 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.config
JVMは、それが言うことではない理解することは簡単ですが、設定ファイルのパラメータです。
Mavenのビルドのライフサイクル
构建生命周期
Mavenのがコンセプトのコアに比べて、ビルドMavenは3組み込まれているライフサイクルでした:clean
、default
、site
。
建設相(ビルドフェーズ)
Mavenのではライフサイクルは、一連で構成Build Phase
成分、およびそれぞれのライフサイクルの多くを持つことになりますBuild Phase
などのdefault
ライフサイクルは次のように構成さBuild Phase
コンポーネント:
- 検証 - 確認プロジェクトが正しく、すべての必要な情報が用意されています
- コンパイル - プロジェクトのソースコードをコンパイル
- 試験 - ソースコードをコンパイルした後、適切なテストユニットテストフレームワークを使用して。これらのテストは、コードまたは展開パッケージを要求されていません
- パッケージ - コンパイルされたコードの取得、及びパッケージ形式は、例えば、JARファイルを配布することができます。
- 検証 - 任意の検査の統合テストの結果を品質基準の遵守を確保するために、
- インストール - 他のローカルプロジェクトの依存関係として、ローカルリポジトリにパッケージをインストールします
- 展開は - ビルド環境で完了し、他の開発者やプロジェクトを共有するためのリモートリポジトリへの最終的なパッケージをコピーします。
(ここには示されていないプラス、他のライフサイクルステージ)ライフサイクルステージが完了するために実行されるdefault
ライフサイクルを。使用している場合ことを意味し、上記のライフサイクルのステージ、与えられたdefault
ライフサイクルを、Mavenのは、最初に検証して、ソースコードをコンパイルしようとされますが、ソースコードは、テスト実行のためにある、ソースを実行するためのバイナリファイル(例えば瓶)、統合テストソフトウェアを詰めパッケージには、統合テストは、実績のあるソフトウェアパッケージのローカルリポジトリにインストールされますを確認し、[リモートリポジトリにインストールされたパッケージを展開します。
ターゲットをプラグ(プラグインの目標)
Build Phase
ただ、いくつかのソフトウェアのビルド・プロセスを定義し、それがビルドプロセスで実装されているプロジェクト、ビルドするために直接行かない插件
行うには、建物のライフサイクルを理解することができますステージを構築する複数のライフサイクルを、各ステージが構築されます複数のプラグイン・ターゲットは結合、マップとそれらの間の関係を示しています。
図面はjar:jar
、install:install
されているplugin:goal
コロンはターゲット名に続くプラグ部名は、前に、意味します。上記のグラフから分かるように、実行mvn install
コマンドが実行されたときdefault
のライフサイクルにinstall
ステージ(ステージながら実行するインストール前に)ので、install:install
ターゲットがバインドされているinstall phase
ので、install:install
目標が実行されるを通してように、install
パッケージを完成する機能プラグイン。
概要
Mavenのは、ツールの次の世代を構築するために人気のビルドツールですGradle
、Mavenのから借りているいくつかのポイントがあります。本文中で言及したポイントは、Mavenのツールの知識の一部にすぎない、Mavenのは、次のような多くの強力な機能があります:依存関係の管理は、プラグイン管理、エンジニアリング、多機能、その後の再編成あなたと共有するこれらの高度な機能を。
いいえ公共ん第一線のインターネット企業のアプリケーションアーキテクチャ(高可用性、高性能、高い安定性)、ビッグデータ、機械学習、Javaのアーキテクチャの様々な人気のあるエリアを含む「アーキテクチャダイジェスト」良い重いテキストアーキテクチャの運動会、。