我有一个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类型解析器”的东西可以帮助实现这一点?
1条答案
按热度按时间h7wcgrx31#
所以看起来不可能直接在Java解析器中实现这样的东西。
最后,我使用org.apache.maven.model.io.xpp3.MavenXpp3Reader解析pom.xml文件,得到依赖项/托管依赖项列表,然后使用该列表生成jar的路径(使用语法**<user.home>/.m2/repository////--.jar**)。
然后将此jar文件路径传递给JarTypeSolver。