首页 > 解决方案 > 使用eclipse-resource-api(插件开发)遍历maven项目的依赖jar

问题描述

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

类路径具有以下结构。

    <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.或者有没有比这更好的方法来以编程方式读取maven依赖jar?

标签: javamaveneclipse-plugineclipse-rcpm2eclipse

解决方案


处理解析容器的getResolvedClasspath方法:IJavaProject

IProject project = ... get project

IJavaProject javaProject = JavaCore.create(project);

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

JavaDoc 说:

这是一个帮助方法,将项目的已解析类路径作为简单(非变量、非容器)类路径条目的列表返回。项目的原始类路径中的所有类路径变量和类路径容器条目将被它们解析为的简单类路径条目替换。


推荐阅读