service:nexus
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
service:nexus [12.04.2025 06:57] – [Ansible] viacheslav | service:nexus [04.09.2025 20:22] (текущий) – [Удаление] viacheslav | ||
---|---|---|---|
Строка 104: | Строка 104: | ||
$cred = ' | $cred = ' | ||
- | $files = (dir $folder -Recurse -File).FullName | + | # Пути к файлам jar и pom |
+ | $files = (dir $folder -Recurse -File -include " | ||
+ | # Добавить файлы SHA-1, у кого их нет | ||
+ | $files |% { | ||
+ | if (-not (Test-Path $_)) { | ||
+ | " | ||
+ | (Get-FileHash $_ -Algorithm SHA1).hash.tolower() |Out-File ($_ + " | ||
+ | } | ||
+ | } | ||
+ | # Пути к файлам jar, pom и sha1 | ||
+ | $files = (dir $folder -Recurse -File -include " | ||
+ | # Закачка со счётчиком | ||
+ | $overall = $files.count | ||
+ | $c = 1 | ||
foreach ($f in $files) { | foreach ($f in $files) { | ||
$url = $f.Replace(" | $url = $f.Replace(" | ||
+ | " | ||
"$f -> | "$f -> | ||
& curl.exe -ksu $cred -T $f $url | & curl.exe -ksu $cred -T $f $url | ||
+ | $c++ | ||
} | } | ||
</ | </ | ||
+ | |||
+ | Загрузка в snapshot-репозиторий (пример из Teamcity). Формат - '' | ||
+ | <code bash> | ||
+ | war_path=$(find / | ||
+ | version=$(date +' | ||
+ | curl -ku admin:admin -T " | ||
+ | " | ||
+ | </ | ||
+ | [[https:// | ||
==== Docker ==== | ==== Docker ==== | ||
Предполагается, | Предполагается, | ||
Строка 356: | Строка 380: | ||
==== curl ==== | ==== curl ==== | ||
+ | Последняя версия компонента | ||
+ | <code bash> | ||
+ | & curl.exe -Lvku admin:admin -o " | ||
+ | " | ||
+ | </ | ||
+ | [[https:// | ||
+ | |||
Скачивание всего репозитория. В зависимости от типа репозитория (здесь пример для maven-репы), | Скачивание всего репозитория. В зависимости от типа репозитория (здесь пример для maven-репы), | ||
<code bash> | <code bash> | ||
Строка 419: | Строка 450: | ||
На клиентах прописать в ''/ | На клиентах прописать в ''/ | ||
<code bash> | <code bash> | ||
- | deb http:// | + | deb http:// |
</ | </ | ||
Строка 527: | Строка 558: | ||
ubuntu2204-sec | ubuntu2204-sec | ||
</ | </ | ||
+ | |||
+ | ==== Список всех версий артефакта ==== | ||
+ | Если артефактов много, то нужно учитывать pagination, т. к. все за один запрос не выведутся. | ||
+ | |||
+ | Powershell | ||
+ | <code powershell> | ||
+ | $cred = ' | ||
+ | $artifact = ' | ||
+ | $ext = ' | ||
+ | $report = @() | ||
+ | $token = 0 | ||
+ | $query = " | ||
+ | do { | ||
+ | if ($token -eq 0) {$url = $query} | ||
+ | else {$url = $query + "& | ||
+ | $search = curl.exe -X GET -sLu $cred $url |ConvertFrom-Json | ||
+ | $report += $search.items | ||
+ | $token = $search.continuationToken | ||
+ | } while ($token) | ||
+ | # Вывести список: | ||
+ | $report |select @{n=' | ||
+ | </ | ||
+ | |||
+ | Bash | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | cred=' | ||
+ | artifact=' | ||
+ | ext=' | ||
+ | token=1 | ||
+ | query=" | ||
+ | # Если токен не обрезать, | ||
+ | while [[ ${token: | ||
+ | case ${token: | ||
+ | 1) url=$query ;; | ||
+ | *) url=$(echo -n " | ||
+ | esac | ||
+ | search=$(curl -X GET -sLu $cred $url) | ||
+ | report+=" | ||
+ | token=$(jq -r .continuationToken <<< | ||
+ | done | ||
+ | |||
+ | echo " | ||
+ | |||
+ | # Вывести список: | ||
+ | jq -r '. | " | ||
+ | </ | ||
+ | https:// | ||
===== Удаление ===== | ===== Удаление ===== | ||
<code powershell> | <code powershell> | ||
Строка 535: | Строка 615: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | Удаление старых артефактов ('' | ||
+ | <code powershell> | ||
+ | $selection = $report |select @{n=' | ||
+ | # Здесь из версий 0.0.123 выборка по первой цифре версии патча. | ||
+ | # Если последняя версия 0.0.888, будут удалены все версии <= 0.0.699. | ||
+ | ($selection |group {$_.version -replace ' | ||
+ | curl.exe -X DELETE -Lu $cred $_.downloadurl | ||
+ | if ($?) {" | ||
+ | else {write-host -fore red " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Удаление старых артефактов, | ||
+ | bash | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Лимит хранимых сборок | ||
+ | keep=5 | ||
+ | |||
+ | echo "### Очистка Nexus от старых сборок ###" | ||
+ | assets=($(curl -su admin:admin ' | ||
+ | to_del=" | ||
+ | |||
+ | if [[ -n $to_del ]]; then | ||
+ | echo " | ||
+ | basename -a $to_del | ||
+ | for i in $to_del; do | ||
+ | curl -su admin:admin -X DELETE $i | ||
+ | done | ||
+ | else | ||
+ | echo " | ||
+ | fi | ||
+ | </ | ||
+ | |||
==== Docker ==== | ==== Docker ==== | ||
[[https:// | [[https:// | ||
Строка 642: | Строка 758: | ||
предполагаемое решение: | предполагаемое решение: | ||
+ | |||
+ | ==== Maven не может найти версию из указанного диапазона ==== | ||
+ | Ошибка при сборке, | ||
+ | < | ||
+ | OUTPUT> Caused by: org.eclipse.aether.collection.DependencyCollectionException: | ||
+ | OUTPUT> Caused by: org.eclipse.aether.resolution.VersionRangeResolutionException: | ||
+ | </ | ||
+ | Если указать точную версию, | ||
+ | |||
+ | Причина в том, что в Нексусе нет файла '' | ||
+ | |||
+ | <file xml maven-metadata.xml> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
===== Литература ===== | ===== Литература ===== | ||
service/nexus.1744441026.txt.gz · Последнее изменение: — viacheslav