Предотвратить плагин JaxB Gradle в зависимом проекте от ссылки на текущий Java каталог проекта - PullRequest
3 голосов
/ 01 апреля 2020

У меня есть два Java проекта, в которых для сборки используется Gradle, проект A и проект B.

В проекте A build.grade использует JaxB для генерации Java классов из файла XSD. Я использую jacobono / gradle-jaxb-plugin, который требует определения каталога XSD.

Проект A

build.grade

jaxb {
  xsdDir 'src/main/xsd'
...

Если я запускаю сборку, Проект A генерирует классы Java и прекрасно компилируется.

Для проекта B я хочу использовать сгенерированные классы Java в проекте A, поэтому я добавил проект в качестве зависимости.

Проект B

settings.gradle

include ':project-a'
project(':project-a').projectDir = new File("../project-a")

build.grade

dependencies {
  compile project(":project-a")
}

Теперь вот проблема, когда я запускаю сборку для Project B, я получаю следующая ошибка: > Directory 'C:\Users\xxxx\eclipse-workspace\project-b\src\main\xsd' specified for property 'schemasDirectory' does not exist. По какой-то причине он использует каталог проекта B в качестве root вместо проекта A, который содержит файл XSD.

Мой вопрос: 1) Есть ли способ избежать использования Проекта B в качестве каталога или 2) Не правильно ли я структурировал свои проекты?

...