首页 > 解决方案 > 在 Intellij 中,来自 2 个不同项目(在不同目录中创建)的类文件相互干扰

问题描述

我的源代码:来自同一存储库的 2 个不同分支。两者都有 80% 相同的代码。包也一样。但是两个分支中 20% 的类是不同的。这是因为这些分支中正在开发不同的功能。
我的 Intellij 版本是 2018.2.7 社区版

  1. 我将存储库克隆到 2 个不同的文件夹中。考虑第一个:C:\SourceCode\myRepo 并从 master 移动到 branch1 考虑第二个:C:\SourceCode\SecondCopy\myRepo 并从 master 移动到 branch2

  2. 现在我在 IntelliJ 中创建了 2 个不同的项目。一个来自 C:\SourceCode\myRepo,第二个来自 C:\SourceCode\SecondCopy\myRepo。

  3. 我使用简单的“mvn clean install”命令为 Windows 使用 git bash 构建了第一个项目。(在 Intellij 之外)。打开 Intellij。在 Jetty 上运行应用程序。一切顺利。

  4. 我在新窗口中也打开了第二个 IntelliJ 项目。现在我使用“mvn clean install”(再次在 Intellij 之外)在 git bash 中构建第二个项目。但是一旦我这样做,第一个项目就开始在代码中显示第二个项目中不存在的 java 类的异常。

  5. 即使是已经在第一个项目中使用 Jetty 中的“运行 Intellij 配置”运行的应用程序,也会开始抛出类未找到错误。

  6. 我该如何解决它并同时处理 2 个代码略有不同但 80% 相同的代码、相同的包等的项目?我在这里想念什么?我的意图不是并行运行 Jetty。但是要能够独立编译这两个项目,并且能够随时在任何一个项目中运行Jetty,而不会干扰其他项目。这些项目都是大项目,因此,我想为一个项目启动构建和运行。在它启动并运行之前,我希望能够以一种方式并行处理另一个,在这个项目中编译/自动构建之后的这项工作不会影响我刚刚启动应用程序的另一个。

它正在扼杀我的生产力。请帮忙!

标签: intellij-ideamultiple-projects

解决方案


有人告诉我......它的发生是因为我使用的是 maven,并且在构建之后,maven 将它构建的项目库保存在本地存储库中。因此,构建后的两个项目都试图将 jars 保存在 Jetty 正在读取的同一文件夹中。因此存在干扰。我没试过。但是如果我为这两个项目保留 2 个单独的本地存储库,它应该可以解决,但是所有依赖项也将不必要地重复。因此,@Andrey 提到的解决方案是我将两个项目的 maven 坐标分开,以便为两个项目创建 2 个单独的 jar。谢谢安德烈。我不一定会更改所有模块的 maven 坐标,但会更改两个项目中存在代码差异的模块。希望这个答案对某人有所帮助。


推荐阅读