![](/img/trans.png)
[英]How to add dependencies from Ivy to the Eclipse PDE Target Platform?
[英]Add a directory to a Target Platform dynamically on Eclipse
我使用的是Eclipse 3.7(Indigo),並且具有一個向活動目標平台添加定義目錄的插件。
ITargetPlatformService service = (ITargetPlatformService) PDECore.getDefault().acquireService(ITargetPlatformService.class.getName());
ITargetDefinition target = service.getWorkspaceTargetHandle().getTargetDefinition();
IBundleContainer[] bundles = target.getBundleContainers();
String myDirectory = "C:\\directory";
boolean containsMyDirectory = false;
for (IBundleContainer bundle : bundles) {
if (bundle.toString().contains(myDirectory.toString())) {
containsMyDirectory = true;
break;
}
}
if (!containsMyDirectory) {
bundles = Arrays.copyOf(bundles, bundles.length + 1);
bundles[bundles.length - 1] = service.newDirectoryContainer(myDirectory.toString());
target.setBundleContainers(bundles);
service.saveTargetDefinition(target);
LoadTargetDefinitionJob.load(target);
}
但是現在,我們正在遷移到Eclipse 4.4(Luna),並且代碼不再編譯,顯示以下消息:導入org.eclipse.pde.internal.core.target.provisional無法解析
無法解決的進口是:
import org.eclipse.pde.internal.core.target.provisional.IBundleContainer;
import org.eclipse.pde.internal.core.target.provisional.ITargetDefinition;
import org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService;
import org.eclipse.pde.internal.core.target.provisional.LoadTargetDefinitionJob;
Eclipse 3.7中使用的jar是org.eclipse.pde.core_3.7.1.v20120103_r372.jar,而Eclipse 4.4中是org.eclipse.pde.core_3.10.0.v20140519-1409.jar
我找不到替代舊類的類。
有人知道該怎么辦嗎?
這些類是內部類,因此您不應該使用它們。
現在它們已全部移至org.eclipse.pde.core
插件中的org.eclipse.pde.target
包中,因此它們已成為官方API的一部分。
但是PDECore
仍然是內部的,因此不應使用。 由於ITargetPlatformService
是OSGi服務,因此您應該可以使用ServiceReference
在插件中獲取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.