从Gradle将选项传递给JPAAnnotationProcessor
我有一个Gradle任务,它使用Querydsl JPAAnnotationProcessor从注释生成JPA查询类型的源文件。我使用了一个Gradle任务,非常类似于joeG在帖子中的回复 我可以生成源文件,但我想排除某个包中的某些文件。Querydsl文档列出了Querydsl.excludedPackages选项。如何将此选项传递给Gradle中的JPAAnnotationProcessor 在Maven中,我可以使用apt Maven插件,并在配置过程中传递如下信息:从Gradle将选项传递给JPAAnnotationProcessor,jpa,gradle,querydsl,Jpa,Gradle,Querydsl,我有一个Gradle任务,它使用Querydsl JPAAnnotationProcessor从注释生成JPA查询类型的源文件。我使用了一个Gradle任务,非常类似于joeG在帖子中的回复 我可以生成源文件,但我想排除某个包中的某些文件。Querydsl文档列出了Querydsl.excludedPackages选项。如何将此选项传递给Gradle中的JPAAnnotationProcessor 在Maven中,我可以使用apt Maven插件,并在配置过程中传递如下信息: <optio
<options>
<querydsl.excludedPackages>com.thomsonreuters.domainmodel.eventhistory</querydsl.excludedPackages>
</options>
com.thomsonreuters.domainmodel.eventhistory
但是我不知道如何使用Gradle来实现这一点。我目前使用这个
build.Gradle
脚本来生成QueryDSL类型:
project("my-project") {
sourceSets {
generated {
java {
srcDir 'src/main/generated'
}
}
}
configurations {
querydslapt
}
dependencies {
// your dependencies
querydslapt "com.mysema.querydsl:querydsl-apt:3.4.0"
}
task generateSources(type: JavaCompile, group: 'build', description: 'Generates the QueryDSL query types') {
source = sourceSets.main.java
classpath = configurations.compile + configurations.querydslapt
options.compilerArgs = ['-proc:only',
'-processor',
'com.mysema.query.apt.jpa.JPAAnnotationProcessor',
'-Aquerydsl.excludedPackages=com.thomsonreuters.domainmodel.eventhistory']
options.warnings = false
destinationDir = file('src/main/generated')
outputs.dir destinationDir
}
compileJava.source generateSources.outputs.files
clean {
delete sourceSets.generated.java.srcDirs
}
}
我通过查看com.mysema.maven:aptmaven插件的源代码,了解它是如何传递额外选项的,从而得出了答案 它从选项结构中获取值,将字母A添加到键的开头,并以key=value的形式传递它们。因此,对于key querydsl.excludedPackages,我需要在options.compilerArgs列表中添加类似“-Aquerydsl.excludedPackages=com.package.to.ignore”的内容
一旦我这样做了,我就可以忽略我不想处理的包。使用最新的gradle更容易
compileJava {
options.compilerArgs += [
'-Aquerydsl.excludedPackages=com.thomsonreuters.domainmodel.eventhistory'
]
}
dependencies {
...
compile "com.mysema.querydsl:querydsl-jpa:3.6.3"
compileOnly "com.mysema.querydsl:querydsl-apt:3.6.3:jpa"
}
这与我正在使用的类似,但我不知道如何在options.compilerArgs中传递querydsl.excludedPackages参数。在Maven插件中,querydsl.execludedPackages位于映射结构中,如问题所示。@MattJames,查看,该选项似乎应作为
-aooptionName=optionValue
传递给注释处理器。我已经相应地更新了答案。我已经完成了您提到的配置,但我得到了警告:以下选项未被任何处理器识别:“[querydsl.excludedPackages]”请参考@MasterCode我不再使用gradle(返回maven),因此我帮不上忙。请对这个问题投赞成票: