2012-07-11 90 views
9

我想弄清楚如何在单个IntelliJ项目中的两个模块之间共享包,而我似乎无法找到正确的方法来完成它。我知道它可以在Eclipse中完成,但我对它并不十分精通。简而言之,我试图重现由AppEngine连接的Android项目创建的同一种项目环境。在IntelliJ中的模块之间共享Java包?

这里的 “问题” 是最好的,我可以摊开来

项目A.

  • 模块1; AppEngine + GWT +其他
  • 模块2; Android的

每个模块都有该项目的主目录中有自己的源代码目录:

  • /项目A /模块1/src目录
  • /项目A /单词数/ src目录

我创建包为这两个模块,并编写每个所需的各种类。大多数类是独一无二的模块/平台,并包装成自己的命名空间

模块1

  • com.example.myproject.server
  • com.example.myproject.server.domain
  • com.example.myproject.server.services
  • ...

模块2

  • com.example.myproject.client
  • com.example.myproject.client.activities
  • com.example.myproject.client.fragments
  • ...

然而,我在两个模块中都使用了一些相同的接口和枚举:现在我想让所有相同的代码在两个模块之间共享,所以我不必在每次更改时在软件包之间复制源代码周围的东西。

  • com.example.myproject.shared
  • com.example.myproject.shared.interfaces
  • ...

我知道的IntelliJ将允许您配置多个内容作为根部分的模块配置。但是,如果两个模块共享相同的内容根,如果它们属于同一个IntelliJ项目......?有没有更好的方法来配置我的项目?或者我错过了什么..?

回答

7

您可以移动共享代码到拥有自己的内容根另一个模块,说:

/ProjectA/Module3/src 

,然后加上单词数这两个模块1 1和Module2模块依赖。

+0

* **总台** *甚至没有考虑第三个模块......就像一个魅力工作!谢谢!! – aheinrich 2012-07-11 19:08:15

+0

我已经试过这个解决方案,它不适用于GWT编译。它仅适用于服务器代码。 – 2014-04-25 22:03:54