Используйте спецификацию из управления плагинами Gradle

#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. извините, я перечитал вопрос и более внимательно посмотрел, как мы это делаем. и… мы также не обрабатываем это из-за этой проблемы . Так что нет, ответ таков: пока это не будет исправлено (что, похоже, не произойдет в ближайшем будущем), вы просто не сможете. Я не думаю, что даже стоит сделать это ответом.