我正在处理存储在USB密钥上的一些Eclipse项目。我已将它们添加到工作空间,其根文件夹也位于USB密钥上,但项目不直接位于此目录中。因此,它们的绝对路径将写入工作区的.projects文件夹中。
当我在多台计算机上使用密钥时会出现问题,因为分配给USB密钥的驱动器号并不总是相同(我不想在所有计算机上为其分配特定的字母)。当我将项目添加到工作区时,当驱动器号与USB密钥的驱动器号不同时,Eclipse无法打开我的项目。
这个问题有解决方法吗?具体来说,有没有办法让Eclipse通过工作区文件夹中的相对路径将项目添加到工作区?
答案 0 :(得分:4)
真的不那么难。您只需指定一个指向WORKSPACE/..;
的新变量。例如,你可以使用Forge Minecraft modder包 - 它有一个工作空间,无论什么机器下载它,你放置它的地方,甚至你移动它都可以立即就绪。
下载: http://files.minecraftforge.net/minecraftforge/minecraftforge-src-1.6.2-9.10.0.789.zip
然后解压缩并运行 install.bat / cmd 。然后检查 forge / mcp / eclipse / Minecraft / {.project,.workspace} 的内容以查看一些示例。
我的工作空间就像这样在github上工作。
答案 1 :(得分:3)
简短的回答是,如果不破解工作区元数据([workspace.dir]/.metadata
下),就无法做到这一点。 Eclipse工作区的设计不是可移植的,即使您没有物理移动工作区,实际上您也可以通过更改驱动器号来移动它。
我建议您尝试找一种方法让您的项目置于workspace.dir
之下。不保证你不会有这样的问题,但可能会提高你的赔率。根据您使用的Eclipse的功能,您最终可能会在工作区元数据中使用其他类型的绝对路径。
答案 2 :(得分:3)
根据我的经验,如果你试图“破解”日食的元数据,它会在某个时候破裂。
考虑Windows中的subst
命令(正如你提到的驱动器字母我假设是Windows)
创建一个包含
的bat文件subst N: .
运行它会将当前目录挂载为N:所以您可以将它放在USB驱动器上,并在运行eclipse之前运行它,然后您将始终在驱动器N上找到相同的内容:
删除mount mount
subst /D N:
您可以考虑制作一个挂载N:的bat文件,启动eclipse并在eclipse退出后卸载N:类似
startMyProject.bat:
subst N: .
N:/eclipse <yadayada options>
subst /D N:
答案 3 :(得分:0)
这个问题有点陈旧,但是有一个完全不同的方法:您可以从Eclipse期望项目的文件夹创建一个Junction,例如E:\foo\workspace\myproject
并将其链接到项目所在的位置,例如E:\bar\myproject
。
Junction本质上意味着您可以通过2个不同的路径访问同一个文件夹,因此您不必担心Eclipse的奇怪相对路径限制。要轻松快速地创建它,我建议您获取Link Shell Extension
答案 4 :(得分:-2)
我自己没试过,但这可能会奏效。尝试:
将源文件夹添加为链接资源&amp;删除先前的定义:
http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-45.htm
关闭eclipse并在工作区中找到您的项目文件夹(例如:C:\Documents and Settings\username\workspace\yourproject\
)替换文件.project
中的绝对路径。 .classpath
具有相对路径。