2016-04-11 10 views
2

依存関係の数が多いIntellijでロードされた(Mavenベースの)プロジェクトAがあります。別のプロジェクトでブレークポイントを設定しているときにIntellijでプロジェクトをデバッグする方法

私は別のIntellijプロジェクトにこれらの依存関係の1つ(たとえばB)のソースファイルを持っています。 Aは、ブレークポイントは、Eclipseで

プロジェクトBに到達したとき停止するように

私はBとデバッグプロジェクトAにブレークポイントを入れたいと思い、私はちょうど同じワークスペースに両方のプロジェクトを持っている必要があり、それが動作します。 Intellijには作業領域がないので、どうやったらどうすればいいのか、それが可能ならば、私は思います。

答えて

3

複数のMavenプロジェクトを扱う場合は、両方を親Mavenプロジェクトの下に置くと便利です。 2つの子プロジェクトは親を認識せず、互いに独立していますが、親の1つのPOMにそれらを集約することで、依存関係を依存関係と同期させながら同時に構築してテストすることができます。これを行うと、プロジェクトごとに実行コンフィギュレーションを作成し、デバッグモードで起動し、そのいずれかまたは両方にブレークポイントを設定することもできます。

親pomは両方のプロジェクトの親フォルダにとどまっています。子ポームは親として参照していないため、ソース管理に入る必要はありません。両方の作業に便利です同じ時間。ソースファイルを使用してlocalRepositoryにプロジェクトBを構築する

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>anything</groupId> 
    <artifactId>anything</artifactId> 
    <version>0.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>All projects</name> 
    <modules> 
     <module>project-1-subdirectory</module> 
     <module>project-2-subdirectory</module> 
    </modules> 
</project> 
+0

これはIntellijと詐欺的だが、それは仕事をする! – Ben

+0

私はこれが不正行為だとは思わない、それはメイヴェンが働く方法だ。私はIntelliJ(NetBeansから来た)の私の唯一の問題は、これまで複数のプロジェクトを同時に開くことができなかったため、この記事を見つけたことはとても嬉しいことです。これにより、その機能が復元されます。私は恋に落ちました! – Warkst

+0

私はプロジェクトAとBを@Hank Dによって提案されているのと同じ親プロジェクトのモジュールとして持っていると思うのですが、これはマルチモジュールのプロジェクトの本来の目的から逸脱しているためです。また、AまたはBに既に親プロジェクトがある場合はどうなりますか?私は一般的なもう一つの答えを追加し、mavenとgradleプロジェクトで動作します。 –

1

1):このようなポンポンは、次のようになります。

  • Bがmavenプロジェクトの場合はsource pluginを使用できます。次にmvn installは、ファイルB- -sources.jarを生成する必要があります。
  • Bがgradleプロジェクトの場合は、task to generate the sourcesを定義できます。

2)IntelliJでプロジェクトAを開きます。プロジェクトAはBに依存しているので、IntelliJはB-バージョン -sources.jarを見ることができます。ブレークポイントを設定してデバッグしたいBクラスを開くだけです。 IntelliJエディタで、クラスが読み取り専用であることを示す小さなロック記号が表示されます。

(IntelliJのバージョンによっては、上記の手順(1)のローカルリポジトリに "ソース"を持たなくても、IntelliJがクラスをエディタに逆コンパイルして