3

したがって、次のようなファイル構造があります。

.git
.project
.classpath
app1
    pom.xml
    .classpath
    .project
    src
app2
    pom.xml
    .classpath
    .project
    src
app3
    pom.xml
    .classpath
    .project
    src
TheAppIWorkOn
    pom.xml
    .classpath
    .project
    src

TheAppIWorkOn は、maven の依存関係である app1、2、および 3 の jar を使用するため、app1、2、または 3 で何かを編集する必要がある場合、それは面倒なプロセスです。「宣言へのジャンプ」機能を使用すると、ロックされたjarが表示されるだけです。「宣言にジャンプ」すると、編集できる実際のコードに移動するように設定することは可能ですか?

4

1 に答える 1

4

Maven リアクター ビルドがあれば、すべてのモジュールがセットアップされます。これで、jar ファイルへの依存関係のみがあり、IntelliJ は依存するモジュールがあることを認識できません。ただし、モジュールの依存関係を指摘することで IntelliJ を支援できます。その後、プロジェクト内のすべてのクラス間を移動できるようになります。

最善の方法はpom.xml、プロジェクトのルート ディレクトリに を作成することです。この pom は、さまざまなモジュールをまとめて保持し、ビルド順序も定義します。初めてプロジェクトを開く場合は、IntelliJ をこの pom ファイルにポイントするだけで、すべての依存関係が解決されてセットアップされるため、異なるモジュール内のクラス間のナビゲーションが簡単になります。

ルート ディレクトリのサンプル pom ファイル:

<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.stackoverflow</groupId>
    <artifactId>Q16589702</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <name>${project.artifactId}-${project.version}</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <modules>
        <module>app1</module>
        <module>app2</module>
        <module>app3</module>
        <module>TheAppIWorkOn</module>
    </modules>

</project>

何らかの理由でこれを行うことができない場合は、モジュールの依存関係について IntelliJ に通知する必要があります。これを行うには、 を開きますProject Structure

ここに画像の説明を入力

次にモジュールTheAppIWorkOnを選択し、下部のプラス記号を押して を選択しますModule Dependency...

ここに画像の説明を入力

そこで、依存関係として持ちたいすべてのモジュールを選択できます。

ここに画像の説明を入力

を押しOkOkもう一度押します。

ここに画像の説明を入力

これで、プロジェクト内の異なるクラス間を移動できるようになります。

との間に依存関係がある場合app1は、それらに対しても同じことを行う必要があります。app2app3

しかし、最も簡単な方法は、ルート プロジェクト ディレクトリにすべてのモジュール間の依存関係を含む pom ファイルを配置することです。

于 2013-05-16T16:07:48.730 に答える