最近の研究ソファ箱舟プラグイン機構は、実行した後ことがわかったmaven clean install -DskipTests
ターゲットディレクトリに再生しているときxxx.jar
、地元の倉庫にインストールxxx.jar
一貫性のないサイズ。
-
プラグイン・ターゲットのディレクトリサイズ
-
.m2下のサイズを差し込み
実際には、このような現象も、混乱力を見て、同じプロジェクト、同じコマンドを始めているが、二つの巨大な瓶のパッケージサイズのギャップを取得します。したがって、この問題のために、私は2つの点があると思います。
- デバッグプラグインパッケージングプロセスの実行
- ライフサイクルのMavenプラグインを理解します
デバッグプラグインパッケージングプロセスの実行
ここでは、リモートでデバッグIDEAが行われている能力を必要とします。2つのエンジニアリングは、以下に示すように、建設が私たちの主、MQ-クライアント箱舟 - プラグインプロジェクトは、上記のスクリーンショットと呼ばれ、他のウィジェットがパッケージ化されたソースプロジェクトである、があります。
リモート完了するためのステップバイ続いて、次のステップdebug
の設定を。
1、デバッグモードを有効にするには、コマンドを使用してmvnDebug
主な作品にmq-client-ark-plugin
、ルートディレクトリの下に行わmvnDebug install
(以外は、もちろんinstall
外であってもよいcompile
、package
、test
、deploy
など)。
完全に実行する場合mvnDebug install
、あなたはリスニングポート8000が塞が見ることができます。
2、リモートデバッグソースプロジェクトを設定
ではidea
図のメイン画面の[ツール]メニューの下に選択し、見つけますEdit Configurations...
+
選択します
Remote
該当するリモートデバッグパラメータを入力
Host
:リモートターゲットホストアドレス、メインプロジェクトの前にローカルに立ち上げたので、これはですので、localhost
Port
:リモートリモートターゲットホストのオープンdebug
ポート- リモート開いて
debug
パラメータを:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
設定は、実行した後debug
、あなたはすでにターゲットマシンに接続されている顔をしていることがあります。
ここでの主なプロジェクトのビューで、プロジェクトを実行せずに、ソースコードでdebug
の実装後にボタンの前に、ブロックされておりmaven
、実行のライフサイクルが始まりました:
実装はときに、ソースプロジェクトでブレークポイントを再生するためのように、上記に示したsofa-ark-maven-plugin
場合、プラグイン遮断されます。
達人のライフサイクルの実行から、問題の原因を特定します
ターゲット・プラグインソースの上方に取得する必要がありdebug
、次はプラグインのコードであり、オンモードdebug
操作。ターゲットの場所にコードのブレークポイント行に直接ここでは、スペースを節約するには:
このコードの分析
- 1、プロジェクトへのアクセス
Artifact
、この時点ではArtifact
あるfile
次のとおりです。 - 2、再集合
File
- 3、再集合
artifact
上記からのシングル場合はdebug
難しい、実際には、問題が始まることを説明します。振り返ってみるにおけるだからここにメインプロジェクトmaven
実行ログを:
表す赤い円部上図、maven install
すべてのステージが経験しました。見ることができますsofa-ark-plugin-maven-plugin
にmaven-install-plugin
戻って、これは何を意味するのでしょうか?
私たちは、xxx.jarは、製品の段階を詰め、そして次.m2は、製品がインストールされているターゲット・ディレクトリの下に得られていることを知っています。
もちろん、ここで説明されていない
deploy
、deploy
それはinstall
リモートリポジトリに、このような公開後に運転。
ので、今、見てsofa-ark-plugin-maven-plugin
実行install
プラグの前には、パックされた生成結果として、対象のファイルを置き換えるためにtarget
、ディレクトリxxx.jar
とローカル倉庫に設置xxx.jar
矛盾。
概要
この記事では、二つの小さなポイントを含むルーチントラブルシューティングのプロセスを、文書1は、Mavenのプラグインをデバッグする方法で、もう一つはMavenのパッケージのライフサイクルを理解するのは簡単です。
具体的な研究のライフサイクル上のコードMavenのパッケージがされていないが、ここであなたはおそらく次を推測することができ、コマンドMavenを実行するとき、つまり、そこに中央コントローラに似たものがある、またはMavenのコマンド(またはライフサイクルを解析することにより、ライフサイクルのパイプラインを取得しますパイプラインは、実際に)プラグインの一連の組み立てられます。ライフサイクルまたはパイプラインは、その後、プラグインの実行方法の実施に続いて実行、トラバースプラグインを起動します。