我正在开发一个Eclipse插件,它提供了一个WST服务器适配器(如Tomcat,Jetty等) - Sling IDE Tooling。
实际的服务器是一个Java应用程序,所以它有一个类路径。我有兴趣将该类路径暴露给Eclipse,以便
我知道如何找出服务器上部署的内容,但是如何将其公开给Eclipse?
答案 0 :(得分:0)
IVMConnector.connect
会获得一个ILaunch
参数,而该参数又会包含ISourceLocator
。源定位器具有ISourceContainer
个实例的列表。
源容器实例是根据已解析的IRuntimeClasspathEntry
列表构建的。一些例子:
List<IRuntimeClasspathEntry> classpathEntries = new ArrayList<>();
// 1. Adding a IJavaProject as a classpath entry
classpathEntries.add(JavaRuntime.newProjectRuntimeClasspathEntry(javaProject));
// 2. Adding external jar files
classpathEntries.add(JavaRuntime.newArchiveRuntimeClasspathEntry(jarPath));
// 3. Adding a JRE entry
classpathEntries.add(JavaRuntime.computeJREEntry(launch.getLaunchConfiguration()));
然后需要解析类路径条目并将其转换为源容器
// 4. resolve the classpath entries
IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveSourceLookupPath(classpathEntries.toArray(new IRuntimeClasspathEntry[0]), launch.getLaunchConfiguration());
// 5. convert them to source references
ISourceContainer[] containers = JavaRuntime.getSourceContainers(resolved));
此时来源c