Если кто-то использовал SPOON API, вы можете дать мне несколько подсказок, как создать график вызовов и что мне нужно сделать?Как создать график вызовов с использованием SPOON API
Я думаю, что мне нужно, чтобы создать какой-то процессор, как это:
public class InvocationProcessor extends AbstractProcessor<CtInvocation> {
@Override
public void process(CtInvocation element) {
System.out.println(element.getActualTypeArguments());
}
}
, а затем использовать Launcher для запуска анализа
public void getCallers(){
final Launcher launcher = new Launcher();
launcher.setArgs("-i D:\\IntelliJ_projects\\ComprehensionTool\\ -p comprehensionTool.analyse.processor.InvocationProcessor".split(" "));
launcher.run();
}
, но я не уверен в этом ... и я хочу спросить, нужны ли мне некоторые специальные зависимости для использования Launcher?
Я предполагаю, что я не прав, потому что, когда я выполнил это этот бросок ошибки:
Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.batch.Main.<init>(Ljava/io/PrintWriter;Ljava/io/PrintWriter;ZLjava/util/Map;Lorg/eclipse/jdt/core/compiler/CompilationProgress;)V
at spoon.support.compiler.jdt.JDTBatchCompiler.<init>(JDTBatchCompiler.java:58)
at spoon.support.compiler.jdt.JDTBatchCompiler.<init>(JDTBatchCompiler.java:54)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.createBatchCompiler(JDTBasedSpoonCompiler.java:352)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.createBatchCompiler(JDTBasedSpoonCompiler.java:356)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.buildUnits(JDTBasedSpoonCompiler.java:388)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.buildUnitsAndModel(JDTBasedSpoonCompiler.java:372)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.buildSources(JDTBasedSpoonCompiler.java:348)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.build(JDTBasedSpoonCompiler.java:119)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.build(JDTBasedSpoonCompiler.java:102)
at spoon.Launcher.buildModel(Launcher.java:700)
at spoon.Launcher.run(Launcher.java:651)
Хорошо, но вы добавили зависимость для jdt-core? Вспомогательный вопрос: есть ли у вас причина использовать версию Spoon версии 5.6.0? Я предлагаю вам использовать последнюю версию: 5.5.0. –
Да, я добавил его, но возникла другая проблема с зависимостями ... Теперь она работает нормально. Спасибо. – Ondrej11