这个问题类似于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
选项的值:
${working_set:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<item path="/MyProject" type="4"/>
</resources>}
经过清理后的结果如下所示:
${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在构建器运行后刷新整个项目,但这不是我想要的(它相当慢)。此外,对于“相关资源”配置选项,这意味着构建器在项目中的每个更改后都会不必要地运行。
发布于 2012-01-29 04:11:21
不幸的是,Eclipse在相对目录方面不是很好。
但是,您可以执行以下操作:
从已知位置创建一个新的workspace.
你可以拥有像这样的东西
C:\YourKnownDir\
\workspace\
\src\
\build\
并使用批处理文件启动eclipse:
start %ECLIPSE_DIR%\eclipse.exe -data .\workspace
如果你打算在SVN中包含.project文件,实际上应该有一个预先确定的完整路径。例如:
C:\svn
希望这能有所帮助,但我不知道解决这个问题的任何其他方法。
发布于 2012-06-10 02:37:35
在存储库中添加一个文件夹级别如何?让我们将项目添加到存储库中的一个文件夹中。这样,无论何时签出项目,它都会创建一个带有项目名称的文件夹。
目前,如果您签出文件夹workspace1中的项目。它看起来一定像这样:
workspace_1\lib
如果您在存储库中添加一个文件夹级别,即项目名称(例如,此处为MyProject
),则签出项目的每个人都将获得相同的项目名称。项目的多个副本将如下所示
workspace_1\MyProject\lib
workspace_2\MyProject\lib
这样,你就可以创建多个具有相同项目名称的项目副本,并且你的脚本可以始终利用项目名称的这种唯一性。
发布于 2012-06-16 00:16:53
完全不同的方法:
我认为共享的Eclipse配置文件(即提交给SVN的配置文件)的限制非常大;有些人喜欢将他们的依赖库作为磁盘上的源代码,另一些人则喜欢JAR引用;每个用户的项目名称和工作区的相对位置都不同,等等。正如你所看到的,许多选项都与项目位置(即不能引用其他项目)或工作空间位置相关。
因为我通常都有Maven构建文件,所以我使用maven- Eclipse -plugin从它们生成Eclipse配置文件。在运行时有几个选项可供选择,并且几乎所有内容都可以在构建文件中进行自定义(如果不是这样,只需将一个插件插入该插件即可完成您想要的操作,并将其与您的构建一起提供。如果使用它的用户需要,Maven将自动构建该插件)。还有一些更抽象的设置是在插件之间共享的,所以如果有人坚持使用Netbeans而不是Eclipse,他至少会得到一个初步配置的项目(依赖项、JRE版本、字符集等)。而我从来没有使用过甚至配置过Netbeans。
积极的副作用:当添加或更新库依赖时,只需要更新一个位置(Maven POM),其余的可以很容易地重新生成。
我确信这并不是每个人的方法(特别是如果您不仅使用Eclipse进行开发,而且还使用Eclipse构建最终的工件,使用另一个构建系统可能看起来有点夸张)。
https://stackoverflow.com/questions/8149373
复制相似问题