【问题标题】:Eclipse P2 IUQuery alway has empty resultEclipse P2 IU Query 总是有空结果
【发布时间】:2016-02-02 10:05:42
【问题描述】:

我尝试使用 eclipse P2 来启用我的工具,以便在 eclipse 启动时自动更新自身。这样做时,我想使用仅适用于 ID 为“my.feature.id”的“我的”功能的 UpdateOperation。每当在 Eclipse 安装中发出此查询时,它的结果为空,因此无需更新。

那么:如何使用 QueryUtil 权限来获取仅包含我的更新功能的集合作为 UpdateOperation 的输入?

当想要在eclipse启动时开始更新时调用以下方法:

public class P2Util {
    public static IStatus checkForUpdates(IProvisioningAgent agent, IProgressMonitor monitor) {
        ProvisioningSession session = new ProvisioningSession(agent);
        IQuery<IInstallableUnit> query = QueryUtil.createLatestQuery(QueryUtil.createIUQuery("my.feature.id"));
        UpdateCheckActivator.info("Update Query Expression: " + query.getExpression());
        IProfileRegistry registry= (IProfileRegistry)agent.getService(IProfileRegistry.SERVICE_NAME);
        IProfile profile= registry.getProfile(IProfileRegistry.SELF);
        IQueryResult<IInstallableUnit> result = profile.query(query, monitor);
        Set<IInstallableUnit> unitsForUpdate = result.toUnmodifiableSet();
         UpdateOperation operation = new UpdateOperation(session, unitsForUpdate);
    }
}

【问题讨论】:

    标签: eclipse eclipse-pde p2


    【解决方案1】:

    解决方案非常简单,但起初令人困惑。尝试查找具有“my.feature.id”的特征的查询正在查询错误的 id。

    在我的功能的 feature.xml 中,它是“my.feature.id”,但可安装单元由于不明显的原因获得了后缀“feature.group”。如果将其添加到查询中的 id 中,您会得到正确的结果,并且更新操作会按预期成功。

    【讨论】:

      猜你喜欢
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      相关资源
      最近更新 更多