此问题与Eclipse中的Integrate Ant构建器类似:错误"变量引用空选择",但要求提供不同的内容.
在我的Eclipse JDT项目中,我有一些我想在编译之前执行的ant任务,所以我在我的Eclipse构建器配置中添加了一个ant构建器.现在,我想为此构建器配置两个选项"完成后刷新资源"和"相关资源的工作集",以便它们包含项目中的特定目录.
两者都允许我用这个对话指定一个"工作集" .问题是,这将在Eclipse构建器配置文件中放置与工作空间相关的路径,因此路径将包含项目名称.
问题是整个项目是在subversion存储库中管理的.Eclipse配置是存储库的一部分,其他用户使用不同的文件系统布局和可能不同的Eclipse项目名称来检查它.例如,我通常在Eclipse工作区中拥有同一项目的多个工作副本,每个副本当然都有不同的项目名称.
这就是为什么我正在寻找一种方法如何在Eclipse中指定相对于项目目录(而不是工作空间目录)的工作集,或者某种其他方式来定义构建器的刷新范围,使其在我的项目中包含单个目录.
我正在使用Eclipse 3.7(Indigo).
如果我在对话框中配置工作集并在之后查看配置文件,则以下字符串是ATTR_REFRESH_SCOPE选项的值:
${working_set:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<item path="/MyProject" type="4"/>
</resources>}
Run Code Online (Sandbox Code Playgroud)
消毒这看起来像:
${working_set:
<?xml version="1.0" encoding="UTF-8"?>
<resources><item path="/MyProject/lib" type="2"/></resources>
}
Run Code Online (Sandbox Code Playgroud)
所以我希望得到"MyProject"部分.我尝试了上面提到的问题的解决方案并替换了路径${build_project:/lib}.这没有给出任何错误消息,但它似乎没有任何效果(Eclipse不会刷新提到的目录).
我也尝试用,替换整个工作集定义${build_project:/lib},但这会给出错误消息Unable to restore resource memento.
我知道我可以告诉Eclipse在构建器运行后刷新整个项目,但这不是我想要的(它非常慢).此外,对于"相关资源"配置选项,这意味着构建器在项目中的每次更改后都会不必要地运行.
不幸的是,Eclipse 不太适合相对目录。
但是您可以执行以下操作:
你可以有类似的东西
C:\YourKnownDir\
\workspace\
\src\
\build\
Run Code Online (Sandbox Code Playgroud)
并使用批处理文件启动 eclipse:
start %ECLIPSE_DIR%\eclipse.exe -data .\workspace
Run Code Online (Sandbox Code Playgroud)
如果您要将 .project 文件包含在 SVN 中,那么确实应该有一个预定的完整路径。例如:
C:\svn
Run Code Online (Sandbox Code Playgroud)
希望有帮助,但我不知道还有其他方法可以解决这个问题。