Получение openapi spe c из библиотеки, от которой я зависел - PullRequest
0 голосов
/ 26 марта 2020

У меня есть несколько приложений, которые использовали одни и те же типы данных. Я продублировал их в каждой спецификации OpenAPI c. Boo.

Я видел свет и перетянул эти типы в библиотеку, и они помечены как импортированные в приложениях. Библиотека имеет свою собственную версию openapi c для типов данных и публикуется в репозитории maven.

Когда я собираю одно из моих зависимых приложений, мне нужно получить openapi spe c для библиотеки, поэтому я могу разрешить $ refs для этих типов данных. Я заменю ссылки на типы данных удаленными ссылками на типы данных в библиотеке spe c. Сборка приложения не может полагаться на сборку имеющейся библиотеки.

Я прикрепляю файл openapi30.yaml как артефакт к библиотеке, и я могу увидеть файл в репозитории и загрузить его вручную.

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            artifact 'openapi30.yaml'

        }
    }
}

And the respository shows

Правильно ли я подхожу к этой проблеме? Если да, как build.gradle моих приложений получает этот файл и получает к нему доступ? Глядя в .gradle / caches, он тянет только файлы jar, pom и .module, а не мои spe c.

1 Ответ

0 голосов
/ 29 марта 2020

В библиотеке прикрепите свою спецификацию c с классификатором

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            artifact source: 'openapi30.yaml', classifier: 'openapi', extension: 'yaml'
        }
    }
}

В приложении-потребителе добавьте конфигурацию и зависимость

configurations {
    apisource
}

dependencies {
    apisource group: 'com.xxx.yyy', name: 'lib', version: '0.1.2', classifier: 'openapi', ext: 'yaml'
}

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

configurations.apisource.asPath

Если есть лучший способ, чем этот, пожалуйста, опубликуйте альтернативный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...