将Ant构建器集成到Eclipse中:刷新范围工作集的相对路径

Phi*_*ler 19 java eclipse ant

此问题与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在构建器运行后刷新整个项目,但这不是我想要的(它非常慢).此外,对于"相关资源"配置选项,这意味着构建器在项目中的每次更改后都会不必要地运行.

Dan*_*Dan 1

不幸的是,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)

希望有帮助,但我不知道还有其他方法可以解决这个问题。