IntelliJ和Perforce集成:在客户端规范根目录之外使用项目结构时出现客户端规范问题

use*_*016 3 perforce intellij-idea

我想以以下方式使用IntelliJ。一个包含多个模块的项目(类似于Eclipse工作区)。可以猜到,我是从最近的Eclipse背景转向IntelliJ的。

我设置了一个名为MainProject的空项目,该项目出现在dir结构中:

  • C:\ IntelliJProjects \ MainProject

这正确包含我的“ .idea”目录。我希望这不受源代码控制,而位于C驱动器上。

然后,我添加了两个Java模块,对于将要处理的项目中的每个组件,一个模块。这些是在perforce中,并且在具有root用户的p4客户端规范下

  • V:\ dev

(“ V”是代码必须存在的网络驱动器,但我不希望IntelliJ项目文件驻留在其中)。这两个模块具有内容根

  • v:\ dev \ component1 \ trunk \ src
  • v:\ dev \ component2 \ trunk \ src

一切正常。我已经在模块,src,测试等中正确标记了内容

现在解决这个问题。当我尝试设置perforce时,项目根目录为:

  • C:\ IntelliJProjects \ MainProject

但是客户端规范的根是

  • v:\ dev

所以在测试连接时出现以下错误

<pre>
Connection problems: </br>
 Wrong client specification: </br>
 Client roots: </br>
  v:\dev </br>
 Actual root: </br>
  C:\IntelliJProjects\MainProject </br>
</pre>
Run Code Online (Sandbox Code Playgroud)

当使用Eclipse时,Perforce从未考虑过Eclipse工作区在何处,因此我也不希望IntelliJ关心项目文件的存储位置。我可以看到很多情况下您不希望在perforce下使用项目或模块.iml文件,但是代码确实需要。

解决此问题的唯一方法是根据客户端规范将项目文件放在网络驱动器上,但是由于它处于项目级别,因此不能正确地存在于以下两种情况中:

  • v:\ dev \ component1
  • v:\ dev \ component2

所以我会有一个项目

  • v:\ dev

如果我更改了客户规格,那将会中断

我发现的唯一其他方法是我添加

  • v:\ dev

作为“版本控制”下的目录,您可以在其中添加目录

  • 没有VCS
  • v:\ dev将VCS定义为perforce

这是唯一的方法,还是有人可以建议一种更好的方法?

mat*_*ilv 5

我知道这是一个老问题,但是我现在遇到了同样的问题,并且设法解决了。

我的Perforce工作区位于文件夹B中,而文件夹A中有一个IntelliJ项目。

在我的项目中,我在项目文件夹和Perforce工作区中都有两个模块,并且在将整个项目映射到Perforce时出现“错误的客户端规范”错误。

我所要做的只是转到:IntelliJ项目首选项->版本控制单击+,然后将我的整个Perforce工作区目录作为VCS添加到Perforce映射,如图所示: 在此处输入图片说明