从 Maven 集成测试中查找应用程序代码中的注释方法

Finding annotated methods in application code from maven integration test

我在我的程序中有一个应用于方法的自定义注释。我想找到所有带有特定注释的方法。在我的应用程序代码中,我可以使用 Reflections 包来执行此操作:

new Reflections(
    new ConfigurationBuilder().setUrls(
        ClasspathHelper.forPackage("com.my.package")
    ).setScanners(new MethodAnnotationsScanner())
    ).getMethodsAnnotatedWith(MyAnnotation.class);

但是,当我尝试从通过 failsafe 调用的集成测试中执行相同的操作以在应用程序中(而不是在测试中)查找带注释的方法时,没有找到任何方法。如何从集成测试中获取带注释的方法?

为了让事情正常工作,我必须改变两件事:

  1. 我使用的是 0.9.9-RC1 版本。我粗心大意,首先在 https://code.google.com/archive/p/reflections/ 上发现了 Reflections,其中将 0.9.9-RC1 列为最新版本,但没有注意到提到该项目已移至 GitHub 的小字。我以为 0.9.9-RC1 是最新版本,事实并非如此。截至撰写本文时最新版本是 0.9.11。
  2. 我更改了 Reflections 实例化如下:

    new Reflections("com.my.package", new MethodAnnotationsScanner());