使用Gradle在JAR中包含生成的代码

Eri*_*ser 7 gradle

我写了一个简单的gradle任务来生成thrift文件:

task generateThrift << {
  thriftFiles = fileTree(dir: 'src/main/thrift').matching { include '**/*.thrift' }
  exec {
    executable = 'thrift'
    args = ['--gen', 'java:hashcode', '-o', '/tmp', thriftFiles.collect { relativePath(it) }.join(",") ]
  }
}
Run Code Online (Sandbox Code Playgroud)

这对我来说很好.我想要做的是将它挂钩到构建过程中,以便存根包含在我的JAR文件中.我很难找到一个好的例子,说明在哪里挂钩,以及将文件写到哪里以便它们包含在我的JAR中.这样做的最佳方式是什么,或者有一个例子的项目是什么?

Pet*_*ser 16

我建议把文件写到构建输出目录的子目录中,比方说thrift-stubs.然后你可以将它们包含在Jar中,如下所示:

jar {
  from "$buildDir/thrift-stubs"
}
Run Code Online (Sandbox Code Playgroud)