2017-02-24 8 views
1

私はEclipseのMavenプロジェクトを実行コンフィギュレーションで実行しています。その構成は、OSに依存し、私のpom.xml(Windowsの.bat、Linuxでは.sh)で定義されている(ランナーと呼ばれる)のスクリプトでcompileexec:execを行います。ランナーはOSに依存するものを実行し、アプリケーションでJavaを起動します。どのランナーを使用するには、以下のようなプロファイルに指定されている:私はそれを実行したいときEclipseを使ってMavenビルドをデバッグする方法を短くする

<profile> 
    <id>WINused</id> 
     <activation> 
      <os> 
       <family>windows</family> 
      </os> 
     </activation> 
     <properties> 
      <runnerForLaunch>${basedir}/src/runners/windowsRunner.bat</runnerToUse> 
     </properties> 
    </profile> 

だから、私はAlt+Shift+X, Mを使用して、Mavenの設定を選択します。その後、私はちょうどCtrl+F11を使用します。 Javaコールに-agentlib:jdwp=transport=dt_socket,server=y,address=8000,suspend=yを追加し、他のランナースクリプトを使用する

  1. 編集pom.xml:私はデバッグそれに持っている場合

    は、私は次のことを行う必要があります。

  2. 実行コンフィギュレーションを起動します。
  3. デバッガに接続するデバッグ設定を起動します。

私の質問は、どういうわけかそのプロセスを短縮できますか?私は定期的に変更を取り消してpom.xmlに忘れて、現在は必要のないランナーを使用しています。 で実行するとMavenが何とか検出できないまたはとして実行し、としてデバッグし、それに応じて変数を調整しますか?

答えて

1

あなたのPOMでランナーの設定は、コマンドライン引数をサポートしている場合:

  • 含む別のプロファイルを作成します。

    <profile> 
        <id>debug</id> 
        <properties> 
        <debugArgument>-agentlib: ...</debugArgument> 
        </properties> 
    </profile> 
    
  • に新しいプロパティを使用します。

    <runnerForLaunch>${basedir}/src/runners/windowsRunner.bat ${debugArgument}</runnerToUse> 
    
  • をAdd debugのプロフィールs:をデバッグ設定で使用してください。

  • スクリプトでJava呼び出しで%1または$1を使用します。

または:

  • 宣言し、<debugArgument>debug</debugArgument>のプロパティ値を提供します。
  • スクリプト内で%1または$1を評価し、それに応じて異なる引数でJavaを呼び出します。

または:

  • は、1)debugまたは2)-agentlib: ...値/パラメータ名にあなたのデバッグ構成のプロパティでdebugArgumentを追加します。 debugため%1または$1を評価し、それに応じて異なる引数を使用してJavaを呼び出すか、2)あなたのスクリプトでJavaコールでそれらを使用

    <runnerForLaunch>${basedir}/src/runners/windowsRunner.bat ${debugArgument}</runnerToUse> 
    
  • 1):
  • はでプロパティを使用します。

+0

基本的には、実行コンフィギュレーションとデバッグコンフィギュレーションが必要です。これによりプロセスが少し短縮される可能性がありますが、残念ながらEclipseの 'Ctrl + F11' /' F11'は常に最近使用された最後の設定を実行します。 'Ctrl + F11'が最後に使用された*実行*設定を実行し、' F11'が最後の* debug *設定を実行することを区別しません。 – Bowi

+0

@ Bowi悲しいことに、それは本当です。 2つの異なるタイプの実行/デバッグ構成がないためです。対応するツールバーのドロップダウンはお気に入りの表示に過ぎません。ブレークポイントに達すると、 'F11'はデバッグビューに切り替わります。 –

+0

そして、xy構成が* run *または* debug *を使って起動されたかどうかを判断する方法はありませんか? – Bowi

0

通常、eclipseはmavenプロジェクトのデバッグ時に "mvn"ではなく "mvnDebug"を呼び出すだけでデバッグオプションを追加するので、デバッグオプションを追加する必要はありません。 Javaアプリケーションを実行する前にシェルスクリプトを実行し、exec:javaを使用してJavaアプリケーションを起動して、Eclipseデバッガに接続されたmavenプロセス内で実行させることをお勧めします。

関連する問題