Gradle: пользовательский источник, установленный в качестве зависимости для основного и тестового

Я создал собственный исходный набор в проекте Gradle, чтобы сохранить весь сгенерированный код:

sourceSets {
  generated {
    java {
      srcDir 'src/generated/java'
    }
    resources {
      srcDir 'src/generated/resources'
    }
  }
}

Я хочу, чтобы результаты компиляции кода этого исходного набора были доступны при компиляции и во время выполнения для main а также test исходные наборы.

Какой правильный семантический способ сделать это в Gradle?

ОБНОВИТЬ:

Как предлагается здесь: как добавить новый набор исходных кодов в Gradle? не работает для меня, я все еще получаю java.lang.ClassNotFoundException когда я запускаю свое приложение (хотя компиляция и модульные тесты работают нормально). Вот что я попробовал:

sourceSets {
  main {
    compileClasspath += sourceSets.generated.output
    runtimeClasspath += sourceSets.generated.output
  }

  test {
    compileClasspath += sourceSets.generated.output
    runtimeClasspath += sourceSets.generated.output
  }
}

1 ответ

Решение
sourceSets {
    main {
        compileClasspath += generated.output
        runtimeClasspath += generated.output
    }
}

То же самое для test исходный набор.

Другие вопросы по тегам