開発中に例えばcoreロジックのモジュールとwebモジュールを分けて開発しているときに
webモジュールが依存しているcoreモジュールをローカルのプロジェクトに向けたいときがあるかと思います。
そんなときの方法をメモっておきます。
(もっと簡単な方法があれば教えてください)
ちなみにIntellij IDEAのバージョンはultimate editionの12.0.4です。
前提
- sample-core
- coreロジックのモジュール、プロジェクト構成はこんな感じ
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <groupId>com.kamatama41</groupId> <artifactId>sample-core</artifactId> <version>1.0-SNAPSHOT</version> </project>
SampleService.java
package com.kamatama41.sample; public interface SampleService { void doSomething(); }
SampleServiceImpl .java
package com.kamatama41.sample; public class SampleServiceImpl implements SampleService { @Override public void doSomething() { System.out.println("test."); } }
- sample-web
- webモジュール、プロジェクト構成はこんな感じ
pom.xml
<?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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.kamatama41</groupId> <artifactId>sample-web</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.kamatama41</groupId> <artifactId>sample-core</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> </project>
SampleController.java
package com.kamatama41.sample; public class SampleController { private static SampleService sampleService; public static void main(String[] args) { sampleService = new SampleServiceImpl(); sampleService.doSomething(); } }
手順
sample-webを開いている方のウインドウの[Project Structure]->[sample-web]->[Dependency]タブを開く。
以下のような感じになっているハズなので、左上の方の+(Add)を押して[Import Module]を選択します。
importしたいプロジェクト(sample-core)の.imiファイルを選択します。
sample-webの[Dependency]タブを開いて、右側にある小さ目の+(Add)から
[3. Module Dependency]を選択し、先ほどインポートしたsample-coreを選択します。
追加したsample-coreプロジェクトの依存性をMavenの依存性の上に持ってきます。
あとはApplyもしくはOKで終了。