2016-12-13 14 views
0

私たちはいくつかのモジュールを持つjavaプロジェクトを持っています。バージョン管理にgitを使用し、開発者が独自のIDEを選択できるようにします。ですから.ideaと.imlファイルをgitでプッシュしません。つまり、IntelliJの開発者は、IntelliJでプロジェクトをセットアップするために必要なgitのクローンを必要とします。しかし、我々はそれを設定することにいくつかの問題があります。私自身のプロジェクトではそれが正常に動作し、次のようになります。私たちは、新しい開発者は、ちょうどそのからプロジェクト構造とインポートモジュールに行き、gitのとのIntelliJで開いモジュールPから引くことができ、プロジェクトにパッケージを追加する前にIntelliJでモジュールとJavaパッケージを使用してプロジェクトをインポートするには?

Proejct Module (Is this a real module?) 
    ⤷ Module A 
     ⤷ src 
      ⤷ main 
       ⤷ java 
        ⤷ Package 1 
        ⤷ Package 2 
      ⤷ test 
    ⤷ Module B 

モジュールAおよびモジュールB。しかし、同じことをしようとすると、IntelliJはメインモジュールのテストからモジュールAにしようとします。

これを一時的に使用するための回避策は、モジュールAとBを別々のIntelliJプロジェクトとして直接開くことです。これを行うと、IntelliJはのメインのテストをの外にしようとしません。しかし、これは私たちにとって非常に不便です。

これをどのように修正できますか?

答えて

1

ソースコントロールシステムをIDEに「不可知論的」にして、.idea,*.imlとそれに相当するものを他のIDEとチェックインしないことは良いアプローチです。

実際には、mavengradleのようなビルドコントロールシステムを使用する必要があります。

私の職場では、すべてのJavaプロジェクトにmavenを使用しています。モジュールを定義するルートレベルでpom.xmlを定義するのは非常に簡単です。

mellプロジェクトをintellijにインポートすると、関連するすべてのIntelliJモジュールはと自動的にが作成されます。本質的には、あなたはpom.xmlをインポートする必要があり、あなたは良いです。

そうでなければ、gitからソースをチェックアウトするたびに、モジュールをインポートして作成するのは難しいことです。 Mavenは完璧ではありませんが、mavenまたはgradleのどちらかを使用することを強くお勧めします。

<modules> 
    <module>module-A</module> 
    <module>module-B</module> 
</modules> 

そして、モジュールAとBの両方における pom.xml<parent>タグを介してルートPOMを参照するセクションを定義する必要があります。このようなセクションを作る、ルート pom.xmlからマルチモジュールを定義する

+0

実際には各モジュールにはmavenが使用されていますが、各モジュールには独自のpomがあります。あなたが書いたことから、トップレベルのモジュールにモジュールを定義することで、これを整理することができるように思えるでしょうか? – EJS

+0

正確には、私は私の答えに追加しました。サブモジュールの親のpomを参照することが重要です。モジュールを制御してクリックしてから親に戻ると、すべてが正しく設定されます。 – vikingsteve

関連する問題