如何在JavaParser中添加maven类型求解器

0g0grzrc  于 2023-03-07  发布在  Maven
关注(0)|答案(1)|浏览(330)

我有一个AEM maven项目,依赖项是由maven注入的,我使用Java Parser库来分析代码,到目前为止,我们使用m2存储库中jar的路径手动注入类型解决器,如下所示

List<TypeSolver> typeSolvers = new ArrayList<TypeSolver>();
    typeSolvers.add(new ReflectionTypeSolver());
    typeSolvers.add(new JavaParserTypeSolver(new File(projectPath + "/src/main/java")));
    for (String str : dependencies) {
        typeSolvers.add(JarTypeSolver.getJarTypeSolver(str));
    }
    TypeSolver[] tsArray = new TypeSolver[typeSolvers.size()];
    for (int i = 0; i < typeSolvers.size(); i++) {
        tsArray[i] = typeSolvers.get(i);
    }
    typeSolver = new CombinedTypeSolver(tsArray);

我们向它传递如下jar路径列表:

List<String> dependencies = new ArrayList<>();
    dependencies.add("C:/Users/"+Utility.USER_NAME+"/.m2/repository/com/adobe/aem/uber-jar/6.2.0/uber-jar-6.2.0-apis.jar");

现在,我希望类型解析器自动解析依赖项,而不需要手动添加路径。Java中有没有类似“Maven类型解析器”的东西可以帮助实现这一点?

h7wcgrx3

h7wcgrx31#

所以看起来不可能直接在Java解析器中实现这样的东西。
最后,我使用org.apache.maven.model.io.xpp3.MavenXpp3Reader解析pom.xml文件,得到依赖项/托管依赖项列表,然后使用该列表生成jar的路径(使用语法**<user.home>/.m2/repository////--.jar**)。
然后将此jar文件路径传递给JarTypeSolver。

相关问题