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



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

  • 一个用纯 JAVA 编写的日志记录库
  • 它也应该在安卓上工作
  • 我想在安卓和桌面应用程序中使用它

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

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

  • 安卓应用
  • 安卓日志
  • 桌面应用
  • 桌面日志

日志记录方面的"实际工作"(大多数纯Android兼容JAVA类(将进入AndroidLog(以防止我不小心使用Android SDK中没有的类(。

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

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

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

感谢您的提示,克里斯

PS:搜索 tearms 也欢迎"共享源 JAVA"不是很谷歌友好。

mm. 我认为你这样做的方式是错误的。 我会这样组织它:

  1. Common-Log - 一个通用的Java包,包含DesktopLog和AndroidLog使用的类
  2. DesktopLog,依赖于 Common-Log
  3. AndroidLog,依赖于Common-Log
  4. 桌面应用
  5. 安卓应用

试图同时引用不同子项目中单个项目的部分源代码树听起来像是令人头疼的秘诀;我认为如果您遵循将公共支持类从两个日志记录项目提取到一个单独的公共项目的方法,您会有更多的运气。

最新更新