Nexus имеет несколько типов хранилищ: принимал хранилищам (те, которые на самом деле хранить Maven артефактов), прокси-хранилища (которые перенаправляют трафик на другие удаленные репозитории, когда артефакт запрашиваются), виртуальные хранилищами (простые адаптер репозиториев maven1 [выходит за рамки этого вопроса]). вы также можете создать группы репозитория , которые могут служить артефактами из любого из своих агрегатов (один из них - репозиторий public
).
Кроме того, связь разделяет их хранилища в соответствии с его издательской политикой в снимков и выпусков. Первый хранит только артефакты моментальных снимков; в то время как последний, теоретически, может хранить как моментальные снимки, так и релизы, но на самом деле он плохо себя ведет, когда репо очень велико и содержит моментальные снимки.
Для того, чтобы провести свои артефакты вам нужно:
Первое: Разделите локальное хранилище на два: один, содержащих снимки, и другое, содержащие выпуски. Nexus хранилище инструмент Convertion поможет вам, если ваш репо очень большой:
<dependency>
<groupId>org.sonatype.nexus.tools</groupId>
<artifactId>nexus-repository-conversion-tool</artifactId>
<version>1.8.0.1</version>
<classifier>cli</classifier>
</dependency>
После downlaoded вы можете просто выполнить java -jar nexus-repository-conversion-tool-1.8.0.1-cli.jar -rSource -oTarget
где Source
каталог, который содержит локальный репозиторий для перехода к связующей и Target
является существующим, пустой и записываемый каталог, в котором инструмент конвертации покинет разделенные хранилища. Если исходный каталог равен repository
, а Target - temp
, он создаст каталоги temp/repository-snapshots
и temp/repository-releases
.
Во-вторых: переместите свои разведенные соглашения на связь. И оставьте их в ${NEXUS_HOME}/sonatype-work/nexus/storage
, или там, где ваша установка связи настроена для хранения репозиториев.
Третьего: создать два размещенных репозиториев с тем же идентификатором, как репозитории вы перешли на второй стадии. (в примере repository-snapshots
10 и repository-releases
)
Если ваше репо будет содержать только релизы, ваше решение могло бы сработать, но вы совершили еще одну ошибку.Хотя nexus хранит артефакты для каждого репозитория, хранилище тех, которые не являются размещенными репозиториями, предназначено только для целей кэширования (как в случае с репозиторием public
), вам нужно будет скопировать ваше содержимое на хостинг, чтобы работать.
Вы также должны рассмотреть, какие артефакты вы размещаете в своем репозитории. Nexus делит репозитории на spanshots и освобождает их в зависимости от того, где он размещает артефакты моментальных снимков или выпуски + снимки. Хотя это sho – Miguel
О, я читаю ваш ответ слишком поздно. Думаю, ваш подход сэкономит мне много времени. Я также выделил моментальные снимки и выпустил артефакты, а затем вручную переместил их в соответствующие репозитории Nexus. Мне как-то пришлось развернуть каждый артефакт выпуска, используя cli. Для моментальных снимков достаточно было переопределить кеш Nexus. Благодаря! – mamuesstack