【发布时间】:2012-01-09 19:01:54
【问题描述】:
所以,Eclipse 和相对路径...
我想要实现的是与多个用户共享项目文件,每个用户的源的确切位置可能不同。
也就是说,MyProject 项目的 src 可能位于 c:\version_control_foo\MyProject\src 或 c:\version_control_bar\MyProject\src 甚至 X:\foobar\MyProject\src,并且同一个项目应该适用于所有人。
这是我尝试过的:
我在 Eclipse 中设置了一个指向c:\version_control_foo 的变量 C_TMP,其想法是用户 #2 将使用该变量的不同设置来启动 Eclipse。然后我使用该变量创建了一个链接的源文件夹。
这在我的.project 文件中创建了这个条目:
<linkedResources>
<link>
<name>C_TMP</name>
<type>2</type>
<locationURI>C_TMP</locationURI>
</link>
</linkedResources>
<variableList>
<variable>
<name>C_TMP</name>
<value>file:/C:/version_control_foo</value>
</variable>
</variableList>
变量的变化并没有改变任何东西,这是有道理的,因为项目似乎复制了它的值。
基于this question,我想我可以通过将所有 src 文件夹与工作区位置相关来做到这一点,但这并不是一个很好的解决方案。
我认为 maven 将能够通过生成 Eclipse 项目来处理这个问题(对吗?),但我想用纯 Eclipse 来处理这个问题,而不需要特殊的魔法脚本。
编辑: 如果我使用它来添加更多库,这就像我希望的那样工作。为什么它不适用于我的源文件夹?
Edit2:基于 cmets 的一些说明。带有源文件夹和文件的整个项目在版本控制中可用。但是这些文件的实际路径对于每个用户都是唯一的。从版本控制中签出不涉及任何类型的复制到可以对所有人定义相同的本地位置。
链接源文件夹意味着我可以将其定义为相对于变量。然后可以为每个用户设置这个变量。问题是,变量的值似乎被复制到 .project 文件中,而不是 Eclipse 中设置的值。
【问题讨论】:
-
我对你想要这样做的为什么感到困惑。似乎是标准做法的典型“它在源代码控制中,您将项目签出到 eclipse 的工作区”方法有什么问题?您是否在使用没有 Eclipse 插件的奇怪源代码控制?您是否有某些原因不能告诉您的合作开发者使用相同的文件路径?
-
@Kane 我们使用 clearcase 并且源相对于已安装的驱动器号 clearcase 以及用户正在使用的 clearcase 视图的名称。这两者都可以在每个用户之间有所不同。这封信非常标准,但视图包含用户 ID,并且对每个人都是唯一的。
-
您是希望不同机器上的源代码不同,还是整个项目目录不同?我相信你不能做前者(正如你所发现的那样),但你可以做后者 - 只需让开发人员将项目签出到他们选择的位置即可。最好对位置进行标准化,但有些人不喜欢这样。
-
看到你的 clearcase 评论 - 很有趣。你能把整个项目放在清晰的盒子里,而不仅仅是源头吗?另一个建议是在 Windows 下使用符号链接(是的,真的!)从(比如说)d:\myproject\src“链接”目录链接到每台机器上的不同目录。
-
在原问题中添加了一些说明。
标签: java eclipse relative-path