首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Ant builder集成到Eclipse:刷新作用域工作集的相对路径

将Ant builder集成到Eclipse:刷新作用域工作集的相对路径
EN

Stack Overflow用户
提问于 2011-11-16 17:29:25
回答 4查看 1.1K关注 0票数 19

这个问题类似于Integrate Ant builder into Eclipse: Error "Variable references empty selection",但要求不同的东西。

在我的Eclipse JDT项目中,我有一些ant任务想要在编译之前执行,所以我在Eclipse构建器配置中添加了一个ant构建器。现在我想为这个构建器配置两个选项“完成时刷新资源”和“相关资源的工作集”,以便它们在我的项目中包含一个特定的目录。

两者都允许我用这个dialogue指定一个“工作集”。问题在于,这将把与工作空间相关的路径放入Eclipse builder配置文件中,因此路径将包含项目名称。

问题是整个项目都是在subversion存储库中管理的。Eclipse配置是存储库的一部分,其他用户使用不同的文件系统布局和可能的不同Eclipse项目名称检出此配置。例如,我通常在Eclipse工作区中有同一项目的多个工作副本,当然每个副本都有不同的项目名称。

这就是为什么我在寻找一种方法来在中指定相对于项目目录(而不是工作空间目录)的工作集,或者一些其他方法来定义构建器的刷新范围,以便它在我的项目中只包含一个目录。

我正在使用Eclipse3.7 (Indigo)。

如果我在对话框中配置工作集,然后查看配置文件,则以下字符串是ATTR_REFRESH_SCOPE选项的值:

代码语言:javascript
复制
${working_set:
<?xml version="1.0" encoding="UTF-8"?>

<resources>

<item path="/MyProject" type="4"/>

</resources>}

经过清理后的结果如下所示:

代码语言:javascript
复制
${working_set:
  <?xml version="1.0" encoding="UTF-8"?>
  <resources><item path="/MyProject/lib" type="2"/></resources>
}

所以我想从这里得到"MyProject“的部分。我尝试了上面提到的问题的解决方案,并将路径替换为${build_project:/lib}。这不会给出错误消息,但似乎没有任何效果(Eclipse不会刷新提到的目录)。

我还尝试用${build_project:/lib}替换整个工作集定义,但这给出了一个错误消息Unable to restore resource memento

我知道我可以告诉Eclipse在构建器运行后刷新整个项目,但这不是我想要的(它相当慢)。此外,对于“相关资源”配置选项,这意味着构建器在项目中的每个更改后都会不必要地运行。

EN

回答 4

Stack Overflow用户

发布于 2012-01-29 04:11:21

不幸的是,Eclipse在相对目录方面不是很好。

Relative Paths in Eclipse

但是,您可以执行以下操作:

从已知位置创建一个新的workspace.

  • Import文件,该文件在该已知directory.

  • Provide工作区内的所有
  • 上都是相同的,并为其他开发人员提供设置说明,以便他们将使用相同的“已知目录”。

你可以拥有像这样的东西

代码语言:javascript
复制
C:\YourKnownDir\
    \workspace\
    \src\
    \build\

并使用批处理文件启动eclipse:

代码语言:javascript
复制
start %ECLIPSE_DIR%\eclipse.exe -data .\workspace

如果你打算在SVN中包含.project文件,实际上应该有一个预先确定的完整路径。例如:

代码语言:javascript
复制
C:\svn

希望这能有所帮助,但我不知道解决这个问题的任何其他方法。

票数 1
EN

Stack Overflow用户

发布于 2012-06-10 02:37:35

在存储库中添加一个文件夹级别如何?让我们将项目添加到存储库中的一个文件夹中。这样,无论何时签出项目,它都会创建一个带有项目名称的文件夹。

目前,如果您签出文件夹workspace1中的项目。它看起来一定像这样:

代码语言:javascript
复制
workspace_1\lib

如果您在存储库中添加一个文件夹级别,即项目名称(例如,此处为MyProject ),则签出项目的每个人都将获得相同的项目名称。项目的多个副本将如下所示

代码语言:javascript
复制
workspace_1\MyProject\lib
workspace_2\MyProject\lib

这样,你就可以创建多个具有相同项目名称的项目副本,并且你的脚本可以始终利用项目名称的这种唯一性。

票数 0
EN

Stack Overflow用户

发布于 2012-06-16 00:16:53

完全不同的方法:

我认为共享的Eclipse配置文件(即提交给SVN的配置文件)的限制非常大;有些人喜欢将他们的依赖库作为磁盘上的源代码,另一些人则喜欢JAR引用;每个用户的项目名称和工作区的相对位置都不同,等等。正如你所看到的,许多选项都与项目位置(即不能引用其他项目)或工作空间位置相关。

因为我通常都有Maven构建文件,所以我使用maven- Eclipse -plugin从它们生成Eclipse配置文件。在运行时有几个选项可供选择,并且几乎所有内容都可以在构建文件中进行自定义(如果不是这样,只需将一个插件插入该插件即可完成您想要的操作,并将其与您的构建一起提供。如果使用它的用户需要,Maven将自动构建该插件)。还有一些更抽象的设置是在插件之间共享的,所以如果有人坚持使用Netbeans而不是Eclipse,他至少会得到一个初步配置的项目(依赖项、JRE版本、字符集等)。而我从来没有使用过甚至配置过Netbeans。

积极的副作用:当添加或更新库依赖时,只需要更新一个位置(Maven POM),其余的可以很容易地重新生成。

我确信这并不是每个人的方法(特别是如果您不仅使用Eclipse进行开发,而且还使用Eclipse构建最终的工件,使用另一个构建系统可能看起来有点夸张)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8149373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档