Java 将本地注释处理器项目集成到gradle构建中

Java 将本地注释处理器项目集成到gradle构建中,java,gradle,netbeans,annotations,annotation-processing,Java,Gradle,Netbeans,Annotations,Annotation Processing,我一直在使用Netbeans及其默认的基于ant的构建集成开发一个java项目。由于ant的不足,我计划切换到基于渐变的构建 问题在于,该项目分为三个不同的模块: 注释模块(包含多个注释处理器) 数据库模块 用户界面模块 UI模块和数据库模块使用annotations模块中的annotations处理器。UI模块依赖于数据库模块 我尝试的生成设置如下所示: if (!hasProperty('mainClass')) { ext.mainClass = '' } apply plu

我一直在使用Netbeans及其默认的基于ant的构建集成开发一个java项目。由于ant的不足,我计划切换到基于渐变的构建

问题在于,该项目分为三个不同的模块:

  • 注释模块(包含多个注释处理器)
  • 数据库模块
  • 用户界面模块
UI模块和数据库模块使用annotations模块中的annotations处理器。UI模块依赖于数据库模块

我尝试的生成设置如下所示:

if (!hasProperty('mainClass')) {
    ext.mainClass = ''
}

apply plugin: "net.ltgt.apt"

dependencies {
  compile fileTree(dir: 'lib', include: ['*.jar'])

  apt files('processor/Annotations.jar')
  compileOnly files('processor/Annotations.jar')
}
我试图动态地集成模块,但是gradle构建过程没有生成应该由注释处理器生成的类。此外,我还尝试了annotations模块的预编译版本,但这也不起作用

我的问题是:

  • 如何集成annotations模块以便gradle构建工作
  • 如何将注释模块动态集成到构建过程中
      通常您会使用


      此解决方案适用于动态集成注释模块,但构建不会创建注释类。是否有一个选项可以指定在annotations模块中实现的不同处理器,以便gradle构建可以识别它们。现在您知道如何从另一个模块访问
      annotations.jar
      ,我想您需要查看以使用它您的处理器是否有ServiceLoader发现的服务声明?如果没有,您应该添加它们。
      dependencies {
          compile fileTree(dir: 'lib', include: ['*.jar'])
          apt project(':annotations')
          compileOnly project(':annotations')
      }