Я использую следующую версию maven (v3.5.4) и вижу, что недавно удалил локальный репозиторий maven (~ / .m2 / repository), чтобы сэкономить место на случай чрезвычайной ситуации, думая, что эта локальная копия также будет сохранена. где в моем диспетчере репозиториев (JFrog Artifactory).
$ mvn --version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T00:03:14+05:30)
Maven home: /opt/maven
Java version: 1.8.0_171, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.3.2.el7.x86_64", arch: "amd64", family:
Но после удаления локального репозитория я увеличил пространство на сервере, а затем начал компилировать несколько java-проектов, он начал давать сбои с ошибками зависимости.
Ищете разъяснения по нижеприведенным пунктам?
Локальный репозиторий в основном используется как кэш удаленного репозитория. Он будет содержать любые артефакты, которые вы загрузили из удаленного репозитория, а также те, которые вы загрузили как часть своих сборок.
Если вы сделаете mvn install
, артефакт попадет только в локальное репо; для mvn deploy
он пойдет как в локальное, так и в удаленное репо.
Итак, «Сохраняется ли этот локальный репозиторий в артефакте»: не автоматически. Вам нужно развернуть артефакты.
«Нужно ли нам принимать какие-либо меры предосторожности перед удалением локального репозитория maven»: нет. Но вы навсегда удалите все артефакты, которые хранятся только локально. Обычно это не проблема, потому что вы должны развернуть артефакты, которые хотите сохранить в любом случае.
@GokulnathKumar не знаю, я полностью перешел на Gradle несколько лет назад.
Это хорошо. При правильной настройке ваши сборки моментальных снимков (с версией ...- SNAPSHOT) войдут в libs-snapshots, а выпущенные (без суффикса -SNAPSHOT в версии) в libs-release.