我有一个项目,其布局如下:
src/
java
generated
src /
java包含jpa实体和使用由hibernate元模型注释处理器生成的jpa元模型类的查询类。
将注释处理并入Java插件的最佳方法是什么?
我目前已定义以下任务,但是它对compileJava具有任务依赖性,因为某些代码取决于注释处理器生成的类,所以该任务将失败。
task processAnnotations(type: Compile) {
genDir = new File("${projectDir}/src/generated")
genDir.mkdirs()
source = ['src/java']
classpath = sourceSets.test.compileClasspath
destinationDir = genDir
options.compilerArgs = ["-proc:only"]
}
之所以processAnnotations
依赖,compileJava
是因为您将测试编译类路径放在前一个任务的编译类路径上,并且测试编译类路径包含已编译的生产代码(即的输出compileJava
)。
至于如何最好地解决眼前的问题,您不需要单独的编译任务。Java编译器可以调用注释处理器,并一次编译它们的生成源(连同原始源)(请参阅注释处理)。您需要做的一件事是将注释处理器放在编译类路径上:
configurations {
hibernateAnnotationProcessor
}
dependencies {
hibernateAnnotationProcessor "org.hibernate: ..."
}
compileJava.compileClasspath += configurations.hibernateAnnotationProcessor
(您不想将注释处理器添加到compile
配置中,因为那样会将其视为生产代码的依赖项。)
据我所知,这就是全部(假设您使用的是JDK6或更高版本)。
问题内容: 我可能只是看错了方向,但我发现有关批注处理的JSE文档非常稀疏。我想编写一个注释处理器,该处理器处理带注释的String字段和局部变量,以计算的String表达式替换它们。这应该不会太复杂,但是我对于Javax.annotation.processing的Javadoc却迷失了。 编辑:我需要在编译时处理批注,因为我想修改生成的代码。它应将带注释的常量String表达式替换为计算的St
null 我的git和Gradle技能是初学者水平。我将非常感谢对这项任务的任何帮助。谢谢你。
我正在使用注释处理器来处理方法参数的注释。 用于参数的注释类型有一个注释@参数 现在,当注释处理器运行时,我想检查参数注释()是否有参数注释。我通过执行以下代码来实现这一点。 由于某种原因,arg始终为空。是否有注释未返回的原因?
我已经通过使用Java 8的命令提示符编译成功地运行了用于类级保留注释的注释处理器。 但是,当我尝试在eclipse中配置注释处理器并尝试使用选项运行它时,它没有生效。 我已将包含自定义注释处理器类文件的Jar文件包含到
@Bean public WebMvcEndpoint HandlerMap webEndpoint ServletHandlerMap(WebEndpoint供应商webEndpoint供应商,ServletEndpoint供应商servletEndpoint供应商,控制器Endpoint供应商控制器Endpoint供应商,Endpoint MediaTypes endpoint MediaTy
无法理解如何配置build.gradle以便在没有任何JPA/JDO/Mongo的情况下使用querydsl注释处理器。我想使用@QueryEntity注释生成Q类,这样我就可以使用DSL支持编写动态SQL查询,然后将查询转换为纯文本并提供给Spring R2DBC DatabaseClient Executor。 我正在使用Gradle5,Spring Data R2DBC,Spring Boo