#spring-boot #gradle #gradle-kotlin-dsl #maven-bom
#весенняя загрузка #gradle #gradle-kotlin-dsl #maven-спецификация
Вопрос:
Мы используем спецификацию для совместного использования нашего управления зависимостями в MyCompany.
Он определяется как Maven POM. Вот минимальный пример:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.common</groupId>
<artifactId>common-java</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<properties>
<spring-boot.version>2.4.0</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
Затем она используется из проектов Gradle.
Хотя это работает для зависимостей кода, я хотел бы узнать способ его использования из управления плагинами.
На данный момент мы определяем в settings.gradle.kts
:
pluginManagement {
val springBootVersion: String by settings
plugins {
id("org.springframework.boot") version(springBootVersion)
}
}
springBootVersion
определяется в gradle.properties
.
Это проблема для меня, потому что весенняя версия определена как:
- в общей спецификации;
- в управлении плагинами каждого проекта.
Как я могу получить доступ к этой спецификации из управления плагинами Gradle? И если я не могу, какова хорошая практика «не повторяйся» для этого?
Комментарии:
1. подождите. если у вас уже есть
bom
, почему вы не можете добавить свой плагинbuild -> pluginManagement -> plugins -> plugin
в эту спецификацию и во всех проектах использовать эту спецификацию в качестве родительской?2. @Eugene Я не понимаю вашу точку зрения. Возможно, вы правы, но я не понимаю вашего предложения. Не могли бы вы подробнее рассказать об этом?
3. извините, я перечитал вопрос и более внимательно посмотрел, как мы это делаем. и… мы также не обрабатываем это из-за этой проблемы . Так что нет, ответ таков: пока это не будет исправлено (что, похоже, не произойдет в ближайшем будущем), вы просто не сможете. Я не думаю, что даже стоит сделать это ответом.