7

环境

我正在使用需要字节码检测的第三方库。执行字节码检测的工具需要一些描述文件,并且这些文件必须与已编译的 .class 文件位于相同的文件夹结构中。这些文件仅在编译时是必需的。

问题

我认为 gradle 会将所有文件(资源和类)临时放在同一个文件夹中,然后从该文件夹创建一个 jar。但似乎 gradle 在组装 jar 之前有两个不同的位置用于资源和类文件。如前所述,用于代码检测的第三方工具需要与类文件相同的文件夹结构中的描述文件。

问题

简单地说:我该如何解决这个问题?

想法

  1. 将描述文件放在src/main/java. 不是很“干净”,但可能是一个解决方案。可悲的是 gradle 忽略了这些文件。我试图以某种方式包含它们,但还没有让它工作。
  2. 暂时将描述文件复制到正确的位置。也不是一个非常“干净”的方式
4

1 回答 1

12

您可以通过以下方式重定向资源输出目录:

sourceSets {
  main {
    output.resourcesDir = "build/classes/main"
  }
  test {
    output.resourcesDir = "build/classes/test"
  }
}

那么包含类文件 ( build/classes/main) 的文件夹也将包含您的资源。

于 2017-03-02T11:13:20.223 回答