Java / Gradle. Какие-нибудь советы по централизованному управлению версиями зависимостей для проекта с несколькими хранилищами? - PullRequest
0 голосов
/ 04 марта 2019

Мне надоело вручную менять версию зависимости для каждого репозитория и запускать сборку и тесты.

Существуют ли какие-либо хорошие решения / инструменты для централизации, так что вам нужно всего лишь изменить версию в одном файле?Требование заключается в том, что вы все еще можете переопределить нужную версию из локального репозитория.

1 Ответ

0 голосов
/ 04 марта 2019

В моих проектах Maven я использую родительский pom для управления зависимостями.Я использую тэг "dependencyManagement" в родительском pom для объявления всех доступных зависимостей и его версий для дочерних модулей.

DIRECTORY HERARCHY

- project-name
   - module-A
       - pom.xml
   - pom.xml

В родительском pom.xml я указываю тег depencyManagement:

<dependencyManagement>
   <dependencies>
     <dependency>
        <groupId>com.test</groupId>
        <artifactId>artifact</artifactId>
        <version>1.0</version>
      </dependency>
   </dependencies>
</dependencyManagement>

В модуле-A pom.xml есть что-то вроде:

<parent>
    <artifactId>module-A</artifactId>
    <groupId>com.test</groupId>
    <version>1.0</version>
  </parent>

<dependencies>
<!-- The version is inherited from parent pom -->
         <dependency>
            <groupId>com.test</groupId>
            <artifactId>artifact</artifactId>
          </dependency>
    </dependencies>

Этот способ позволяет изменять версию зависимостей только в родительском pom.xml.Все дочерние модули будут использовать его.

Более подробную информацию вы можете найти в официальной документации Maven: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

...