Eclipse中的相​​对路径

时间:2011-06-08 14:18:21

标签: java eclipse relative-path workspace

我有一个Eclipse工作区,它被检入Subversion存储库。但是,如果我更改工作区目录的名称,则不会加载项目文件,我必须重新导入它们,以及再次设置任何与工作区相关的设置。 Eclipse是否与相对路径一起工作?我不是这个项目中唯一的团队成员,不幸的是,另一个人拒绝遵循共同的目录组织方案。

编辑 此时这些都是java项目

编辑工作区matadata文件夹中有多个文件,虽然这是我发现的第一个与项目有关的文件

<workspace root>\.metadata\plugins\org.eclipse.core.resources\.projects\ProjectName\.location

在此文件“.location”中有一个基于文件的URL。当我尝试使用相对路径时Eclipse崩溃后我做了一些研究,得出的结论是URL无法实现相对路径。

编辑以下是.classpath和.project内容

的.classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

的.project

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>SimpleHelloWorld</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

出于配置和测试的目的,我一直在尝试使用我们的简单Hello World来完成这项工作!样品

3 个答案:

答案 0 :(得分:3)

Eclipse通常使用相对路径。在我的工作场所,我们使用带有Subversive插件的Subversion Repository。当我们进行全新导入时,我们对编译没有任何问题。

您可能希望编辑项目的.project和.classpath文件,以查看是否存在对绝对位置的引用,并将其更改为相对位置。

答案 1 :(得分:3)

工作区从来没有真正意义上的源代码控制。也许我误解了你的设置,但是如果你试图在源代码管理中提交工作区的.metadata文件夹,你就会遇到麻烦!

您应该只自己放置项目,而不是将工作区放在源代码管理中。然后通过Subversive或其他subversion插件,从SCM获取项目。这将使eclipse自动为您的项目创建所有资源和配置,如果您拥有所有依赖项,它们应该开箱即用。

为什么您觉得需要在源代码管理中开始使用整个元数据文件夹?

如果您正在寻找一种简单的方法来管理构建,那么我建议您查看Ant,Maven或其他此类工具来帮助您。如果你想保留你的设置大多数都有导出功能,我建议你得到一个特殊的项目来存储这些设置并将它置于源代码控制之下,这不是理想的,因为它不是自动的,但是一旦设置它们就不应该全部改变那经常。通常我甚至会从我的项目中过滤掉.settings文件夹和.classpath,然后再将它们推送到SCM,让eclipse和maven插件根据需要为我重新生成它们。到目前为止,我从来没有遇到任何麻烦从SCM回来我的东西。设置一个新的东西有点长,但是使用所有插件的Eclipse安装参考,然后导入配置和项目非常快。

答案 2 :(得分:0)

看起来Eclipse不能用相对路径做任何事情。 您可以做的一件便宜的事情是在不同机器上的相同路径中设置相同的预配置Eclipse。 在未来,像Eclipse Orion这样的云IDE可能会解决这些问题...