使用 eclipse-resource-api 遍历 Maven 项目的依赖 jar(插件开发)

Iterate through maven project's dependency jars with eclipse-resource-api (plugin development)

我有一个 Maven 项目。我想遍历它的依赖 jar 项目并读取其中的一些 属性 文件。 使用 Eclipse 资源 api,我可以在工作区中获取一个 IProject 实例并访问其类路径文件。

Class-路径具有以下结构。

    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
    </classpathentry>

如何从中提取实际的依赖 jar 位置?

我原本期待这样的结果

<classpath>
 <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
 <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.9.1/xml-apis-2.9.1.jar"/>
</classpath>

2.Or 有没有比这更好的方法来以编程方式读取 Maven 依赖项 jar?

IJavaProjectgetResolvedClasspath 方法处理解析容器:

IProject project = ... get project

IJavaProject javaProject = JavaCore.create(project);

IClasspathEntry[] classPathEntries = javaProject.getResolvedClasspath(true);

JavaDoc 说:

This is a helper method returning the resolved classpath for the project as a list of simple (non-variable, non-container) classpath entries. All classpath variable and classpath container entries in the project's raw classpath will be replaced by the simple classpath entries they resolve to.