在注释处理器中指定生成的类的路径

时间:2016-09-15 10:16:26

标签: java android annotations velocity annotation-processing

我正在创建一个Android应用程序。我使用AbstractProcessor从Annotated类和Velocity模板生成我自己的类。

这是生成源文件的方法。

  private void createSourceFile(String className, String packageName, 
                  VelocityContext context, Template template) throws IOException {

     final JavaFileObject javaFileObject = 
         processingEnv.getFiler().createSourceFile(packageName + "." + className);

     processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "creating file: " + javaFileObject.toUri());
     final Writer writer = javaFileObject.openWriter();
     if (DEBUGGING) {
        processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "applying velocity template: " + template.getName());
     }
     template.merge(context, writer);
     writer.close();
  }

我的问题是

我可以为生成的类指定目录吗?

现在它们位于 build / source / apt 文件夹中,我想在另一个源文件夹中生成它们,以使它们在开发过程中可见。现在我使用DexFile来查找这个类,但是在使用InstanseRun的新AndroidStudio中,或者当我使用Kotlin或任何其他随机情况时,DexFile会停止收集我生成的类。

0 个答案:

没有答案