Централизованное локальное хранилище Maven для Team - PullRequest
5 голосов
/ 04 апреля 2019

Наша команда разработчиков использует Maven для создания программного обеспечения. У нас есть локальный репозиторий Maven на наших компьютерах. Проблема в том, что иногда сборки, сделанные из двух разных разработчиков, различаются, потому что собранные пакеты включают разные версии включенных зависимостей.

Это происходит, когда тег версии не упоминается в файле POM.xml для зависимостей. Например:

<dependency>
            <groupId>mylib-group</groupId>
            <artifactId>mylib-artifact</artifactId>
</dependency>

В этом случае Maven устанавливает новейшую библиотеку, установленную локально.

Чтобы избежать этой проблемы, мы установили Maven на одном компьютере (мы называем Build Server), и все члены нашей команды делают сборку на этом компьютере.

Есть ли лучшее решение для этого случая?

Как я могу централизовать местный Maven?

1 Ответ

1 голос
/ 04 апреля 2019

Прежде всего: если у вас есть зависимость типа

<dependency>
    <groupId>mylib-group</groupId>
    <artifactId>mylib-artifact</artifactId>
</dependency>

Maven не примет последнюю версию, но определенную в разделе <dependencyManagement>. Таким образом, вы получаете одинаковые результаты на каждом компьютере (если у вас нет версий SNAPSHOT, которые могут отличаться).

Сказав, что: Наличие сервера сборки, как правило, является хорошей идеей для создания стабильной среды для сборок.

Приложение: Вы можете , а не совместно использовать локальный репозиторий Maven. Этот репозиторий не является поточно-ориентированным, и выполнение двух сборок одновременно в одном и том же локальном репозитории может иметь странные последствия (я говорю по опыту).

...