IntelliJ中的共享内容根(跨模块共享源)

时间:2012-05-16 09:45:46

标签: java intellij-idea

也许我的做法是错的,但这就是我想要的:

  • 以纯JAVA编写的日志库
  • 它也适用于Android
  • 我想在Android和桌面应用中使用它

我尝试的方法来自VS和C#,它被称为“多目标” - 它基本上意味着模块与另一个模块共享源代码。

所以我的想法是创建4个模块:

  • AndroidApp
  • AndroidLog
  • DesktopApp
  • DesktopLog

日志记录中的“实际工作”(大多数纯Android兼容的JAVA类)将进入AndroidLog(以防止我意外使用不在Android SDK中的类)。

Android应用程序可以毫无问题地使用日志库,这就是我现在这样做的方式。现在,DesktopLog应该具有一些的AndroidLog文件夹,基本上重用相同的JAVA代码。

我尝试将一个源文件夹从AndroidLog添加到DesktopLog,但是我收到错误告诉我“root已经属于...”。我正在使用SVN,但我认为这不是问题(实际上,我在没有SVN的情况下尝试了上述内容,但如果没有更简单的解决方案,它可能会提供一些解决方法)。

那么我如何获得IntelliJ:
在具有不同目标平台的不同模块之间共享JAVA文件。

感谢提示, 克里斯

PS:搜索撕裂也欢迎“分享源JAVA”不是很友好。

1 个答案:

答案 0 :(得分:0)

毫米。我认为你这是错误的做法。我会像这样组织它:

  1. Common-Log - 包含DesktopLog和AndroidLog
  2. 使用的类的常见Java包
  3. DesktopLog,依赖于Common-Log
  4. AndroidLog,依赖于Common-Log
  5. DesktopApp
  6. AndroidApp
  7. 尝试同时引用来自不同子项目中的单个项目的部分源树听起来像是令人头疼的食谱;如果你按照从Logging项目中提取公共支持类到单独的公共项目的方法,我认为你会有更多的运气。