Eclipse 插件开发 - 从团队提供商获取信息

标签 eclipse svn eclipse-plugin

我对开发 Eclipse 插件非常陌生。我现在面临的最大障碍是在哪里/如何从各种其他插件获取数据。我真的很难找到这方面的文档。例如 Team Provider 插件......

  1. 如何读取文件的 svn 修订版本?假设我有一个 IResourceChangeListener,并且我想跟踪文件的 svn 修订号(例如,如果用户进行了更新)。
  2. 如果我想询问 svn 项目是否有待更新,我该如何与 Eclipse 团队提供商联系?

我不知道从哪里开始......

谢谢!

最佳答案

经过几个小时的搜索,我最终找到了我要找的东西。不幸的是,因为我的代表数还不到 100。到现在为止我都无法发帖......

我在这方面取得了一些进展。我在翻阅 Eclipse 源代码时偶然发现了这一点。

以下代码片段监视与启用 svn 的项目有关的所有情况。如果您保存文件、更新、恢复等。任何涉及文件或文件元数据的内容。我只是打印出文件/目录名称及其修订号。

颠覆版本:

final Subscriber subscriber = UpdateSubscriber.instance();
subscriber.addListener(new ISubscriberChangeListener() {
    @Override
    public void subscriberResourceChanged(ISubscriberChangeEvent[] events) {
        for(ISubscriberChangeEvent event : events) {
            UpdateSyncInfo info = (UpdateSyncInfo) subscriber.getSyncInfo(event.getResource());

            System.out.println(event.getResource().getName()+" revision: "+uInfo.getLocalResource().getRevision());
        }
    }
});

真正的技巧是找出获取此信息的入口点:UpdateSubscriber。如果有一个很好的资源来查找此类信息,那就太好了。

子剪辑版本:

private static final Subscriber subscriber = SVNWorkspaceSubscriber.getInstance();
private static final ISubscriberChangeListener subsciberListener = new ISubscriberChangeListener() {
    @Override
    public void subscriberResourceChanged(ISubscriberChangeEvent[] events) {
        try {
            for (ISubscriberChangeEvent event : events) {
                SVNStatusSyncInfo info = (SVNStatusSyncInfo) subscriber.getSyncInfo(event.getResource());
                System.out.println(event.getResource().getName() + " revision: " + info.getRepositoryRevision());
            }
        } catch (TeamException e) {
        }
    }
};

@Override
public void start(BundleContext context) throws Exception {
    super.start(context);

    subscriber.addListener(subsciberListener);
}

@Override
public void stop(BundleContext context) throws Exception {
    subscriber.removeListener(subsciberListener);

    super.stop(context);
}

关于Eclipse 插件开发 - 从团队提供商获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016564/

相关文章:

svn - 如何避免 svn 存储库中的混合 eol 样式

linux - SVN权限,一组带rw,一组用户带r

eclipse - 在 Eclipse 中添加忽略 SVN 列表的地方在哪里

java - os.detected.classifier 未设置 - os-maven-plugin 和 eclipse oxygen

java - 如何从 Eclipse 插件提供 Flash 策略文件?

android - 最终启动顺序出错 无法执行 MI 命令 -gdb-set target-async off

eclipse - 如何将 Eclipse Classic 升级到 Java EE?

java - System.out.println() 快捷方式不起作用

java - 尝试在 Eclipse 中将 WAR 文件部署到 Tomcat 服务器时出现严重的 : Error filterStart ,

javascript - 在 Eclipse 插件中使用 JavaScript