【问题标题】:IntelliJ project where each module has it's own git repositoryIntelliJ 项目,其中每个模块都有自己的 git 存储库
【发布时间】:2014-12-14 10:14:54
【问题描述】:

我是新的 IntelliJ 用户(我已经使用 Eclipse 很多年了)。我很难理解 IntelliJ 中的-project-is-a-module 概念,因为这在 Eclipse 中不成立。我遇到的主要问题是我在 IntelliJ 中使用我的顶级包作为项目。我希望这个顶级包在 git repo 中。我还希望这个包的所有依赖项都在他们自己的 respive git repos 中。当我将这些包签出到我的项目中时,在顶级包上执行git status,所有依赖项都显示在未跟踪的文件中。这种行为对我来说似乎不正确。我该如何解决?

谢谢!

编辑:

总结 cmets 中的说明:

我想支持数百个库,其中任何一个都可以同时更改。依赖关系图也会经常变化。因此,拥有一个 git repo 或不断更新 .gitignore 文件是不可维护的。

目前,我正在使用 Maven 来管理依赖项,但我愿意使用最适合这项工作的任何东西。

最后,我想将任何库检出到我的工作区并对其进行修改,如果可能,让 Intellij 在运行代码时反映我的本地更改,就好像我的本地代码已经内置到依赖关系图中一样。如果您愿意,可以使用一种本地覆盖。

【问题讨论】:

  • 在我看来这更像是一个 git 问题而不是 IntelliJ IDEA 问题。你使用 git 子模块吗?
  • 我已将 git 添加为标签。我不认为 git 子模块是一个好的解决方案。如果可能的话,我希望将 git 存储库完全分开,就像我在 Eclipse 中所做的那样。 git repos 的嵌套性质是完全任意的,并且仅因为 Intellij 强制执行而存在。
  • 你能解释一下你需要在自己的 git repo 中的每个“模块”的原因吗?
  • 你可以添加一个 .gitignore 规则来从你的顶级包中排除你的依赖
  • 我计划拥有一个包含数百个包和数十个顶级包的大型代码库。显然使用单个 git repo 是不可持续的。

标签: java git intellij-idea intellij-13


【解决方案1】:

IntelliJ 的目录结构将所有模块放在其父项目的目录中。如果您正在开发在多个其他项目之间共享的库,则将库作为模块导入可能不是正确的解决方案。相反,您应该将每个库视为其自己的独立项目,并使用诸如 gradle 或 maven 之类的构建工具进行“发布”。然后您的项目可以像对待第三方库一样对待这些库,并使用构建工具导入库。

【讨论】:

  • 很多时候,我想专门编辑我的库以在顶级包中使用。这将使这样做变得非常麻烦。我必须创建库项目,进行更改,构建,切换窗口,在我的顶级包中进行测试,然后返回库项目继续迭代。当然,必须有某种方法来解决这个问题。拥有数百个软件包的人如何使用 Intellij?
猜你喜欢
  • 2014-08-03
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多