Как скопировать файлы ресурсов в папку классов с помощью Gradle?

Окружающая среда

Я использую стороннюю библиотеку, которая требует инструментария байт-кода. Инструмент, который выполняет инструментарий байт-кода, требует некоторых файлов описания, и эти файлы должны находиться в той же структуре папок, что и скомпилированные файлы .class. Эти файлы необходимы только во время компиляции.

Проблема

Я думал, что gradle временно поместит все файлы (ресурс и класс) в одну и ту же папку, а затем создаст банку из этой папки. Но кажется, что у gradle есть два разных места для ресурсов и файлов классов перед сборкой jar. Как упоминалось ранее, сторонний инструмент для инструментария кода требует файлов описания в той же структуре папок, что и файлы классов.

Вопрос

Просто: как я могу решить эту проблему?

Идеи

  1. Поместите файлы описания с в src/main/java. Не очень "чистый", но может быть решением. К сожалению, gradle игнорирует эти файлы. Я пытался как-то их включить, но пока не получилось.
  2. Временно скопируйте файлы описания в нужное место. Тоже не очень "чистый" способ

person Jan    schedule 02.03.2017    source источник


Ответы (1)


Вы можете перенаправить выходной каталог ресурсов следующим образом:

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

то папка с файлами классов (build/classes/main) также будет содержать ваши ресурсы.

person František Hartman    schedule 02.03.2017
comment
Большое спасибо! Я перенаправил их на bin в данный момент (я использую Eclipse). Оказывает ли это негативное влияние на дальнейший процесс сборки? Потому что эти файлы больше не могут быть разделены - person Jan; 02.03.2017
comment
Если вы перенаправите все ресурсы на bin, они не попадут в последнюю банку - зависит от того, есть ли у вас другие ресурсы, которые вы хотите сохранить. - person František Hartman; 02.03.2017