intellijのアイデアでMavenの目標をデバッグする方法は?


99

Intellij IDEAでMavenの目標をデバッグできますか?右クリックしてDebugを実行できることを知っています。ただし、mavenプラグインが外部ライブラリリストに表示されないため、コードにアクセスしてブレークポイントを設定できません。したがって、DebugRunと同様に、停止することなく目標を実行します。

OS X 10.8とIDEA 12.0.2を使用しています。

編集:目標

https://github.com/searls/jasmine-maven-pluginのカスタムspecRunnerを作成しましたが、$ specs $は空のままです。だから私は実際にロードされているファイルを見てみます。


2
Mavenの目標をデバッグしますか?そのmavenの目標は何ですか?何を達成したいですか?そしてあなたの実際の問題は何ですか?
アロンソドミンゲス2013年

Mavenの目標とは、jasmine:testまたはjasmine:bddを意味します。私が見た限りでは、各Mojoは、デバッグしたいexecute()メソッドを実装する必要があります。ただし、IDEAからjarにアクセスできないため、ブレークポイントを設定できません。
rweng 2013年

回答:


190

理解した:

  1. コマンドラインから、のmvnDebug代わりにを使用してmavenゴールを実行しmvnます。例えばmvnDebug clean
  2. デバッグするMavenプラグインのソースをintelliJで開き、breakPointを設定します
  3. IDEAで、Remote構成を追加します。
    1. 設定で、トランスポート:ソケット、デバッガーモード:アタッチ、ホスト:localhost、ポート:8000(mvnDebugのデフォルトポート)を設定します。
  4. デバッグモードで構成を実行します。待機中のmvnDebug jvmに接続する必要があります。

2
Intellijでmavenプラグインのソースをどのように開きますか?
CorayThan 2015年

githubから正しいバージョンにクローンしたと思います。残りは自動的に起こりました。
rweng

3
mvn test -Dtest=com.example.MyTest(mavenを使用して実行した場合にのみテストケースが失敗する)を使用してテストを実行したい場合
-IDEA

2
それが見つかりました:でstackoverflow.com/q/6573289/1143126、この基本的qustionは尋ねた
RobertG

具体的には、ここにsurefireでmavenゴールをデバッグする方法を示します:stackoverflow.com/a/8339155/929708
JJ Brown

40

非常に簡単。Intellj Idea 15.0.4を使用しています

  1. Mavenプラグインにブレークポイントを設定する
  2. タグ「Maven Projects」で、魔女があなたのmavenプラグインを使用しているプロジェクトに移動します。
  3. 「プラグイン」でプラグインを見つけ、ゴールの上で右クリックしてデバッグします

ここにスクリーンショットがあります:

スクリーンショット


1
この回答はマイナスのスコアですが、私が抱えていた問題(IntelliJでのMavenベースのプロジェクトのデバッグ方法)を修正するのに役立ちました。問題を「グーグル」すると、このページに移動しました。
gbmhunter 2016年

ありがとうございます、あなたの答えは、アイデアの実行中にMavenプラグインを自動的に使用する方法を理解するのに役立ちました
Anatoly Yakimchuk

これは実際には非常に良い答えです。私にとっては、この方法を使用する方が、リモートデバッグをセットアップするよりも間違いなく簡単で簡単です(承認された回答で提案されています)。なぜ他の人が受け入れられたのか分かりません。質問で説明されている状況ではうまくいかないかもしれませんが、私にとって間違いなくうまくいったのであれば、感謝します!
Chanandler Bong

2
「Mavenプラグインにブレークポイントを設定する」これが実際に何を意味するのかわかりませんか?これは、Javaクラス自体にブレークポイントを設定することとは異なりますか?
アマルゴビナス

「Mavenプラグインにブレークポイントを設定する」とは、Mavenプラグインクラスにブレークポイントを置くことを意味します
gorums

17

古い質問ですが、私は同じニーズを持っていて、それが機能するまでにしばらく時間がかかりました。うまくいけば誰かを助けることができます。

テストデバッグの場合:

mvn <goal> -Dmaven.surefire.debug 

または

mvn <goal> -Dmaven.failsafe.debug

実行が停止し、アドレス5005(デフォルト)のソケットをリスンすると、構成済みのリモートデバッガーが実行されます。

設定方法:

実行->構成の編集->リモートトランスポート:ソケットデバッガーモード:接続ポート:5005(デフォルト)

->保存します。


10

IntelliJ内でのみMavenゴールをデバッグする最も簡単な方法は、通常のMavenゴールを作成し、ランナータブでこれらのVMオプションを渡すことです。

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

ここで、8000はリモートデバッグ用のポート番号です。

Mavenの目標設定

次に、ポート8000​​で新しいリモート構成を作成します。Mavenゴールを実行した後で、この構成を実行します。

リモートデバッグ構成


8

最も簡単な解決策は、Mavenプラグインを依存関係として一時的に追加することです。これが完了すると、IntelliJはこれを他の依存関係と同様に扱い、通常の方法でブレークポイントを設定できます。


1
これをドット化し、mvn useの代わりにmvnDebug ...を実行して、ポート8000​​のintellijにリモートデバッグランナーを作成します
user85155

3

上記の回答を参照するか、このプラグインをpom.xmlに追加してください。

           <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
            <jvmArguments>
            -Xdebug - 
            Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
            </jvmArguments>
            </configuration>
        </plugin>

そして、のmvn代わりにでmavenゴールを実行するmvnDebugます。例えばmvn spring-boot:run

IDEAで、リモート構成を追加します。設定で、トランスポート:ソケット、デバッガーモード:アタッチ、ホスト:localhost、ポート:8000(mvnDebugのデフォルトポート)を設定します。

コードをデバッグするときはいつでも、IDEAでデバッグとして実行します。


3
質問では、春については触れられていませんが、この回答は春に固有のものです
アマルゴビナス

1

Intellijを使用しているため、組み込みのデバッガーがすでにあり、必ずしもコマンドラインツールであるmvnDebugを使用する必要はありません。このチュートリアルをチェックしてください:Intellij IDEAでMavenアプリケーションをデバッグする方法

このチュートリアルではMaven Execプラグインを使用しており、コマンドラインやを使用せずにアプリケーションをデバッグできますMvnDebug。ここでそれを共有することは価値があるかもしれません。


2
このチュートリアルでは、デバッグのみを扱いexec:javaます。ただし、JVMに追加の引数を提供する必要がある場合は、そのようにデバッグできないexec:execstackoverflow.com/questions/7305090/…を参照)を使用する必要があります。
mirelon 14年

0

@Peter Szantoの答えは私には役立ちますが、ソースコードを台無しにするのは好きではありません。

そして、私はそれらを作ることができません MvnDebug方法を機能さ。

だから私は別の方法を試します、IDEAモジュールとしてプラグインソースを追加します

詳細な手順は次のとおりです。

  1. プラグインソースを独立したプロジェクトとして複製します。

  2. プロジェクトで、File -> New -> Module from Exist Sourcesステップ1でクローンしたプラグインプロジェクトに移動して追加します。

  3. これで、プラグインのソースコードを開いて、ブレークポイントを設定できます。

  4. Mavenゴールをデバッグモードで実行します。ブレークポイントで停止するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.