Можно ли «скопировать» пакет Maven из одного реестра в другой?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Можно ли «скопировать» пакет Maven из одного реестра в другой?

Сообщение Anonymous »

Я хотел бы разделить этапы сборки и развертывания на отдельные шаги, которые можно выполнять в совершенно разных средах (т. е. на разных виртуальных машинах).
Мотивацией является безопасность учетных данных: убедиться, что этап развертывания (который требует доступа к учетным данным публикации) выполняется в чистой среде на отдельном компьютере, что снижает риск того, что предыдущие этапы (или другие команды, выполненные до сборки) злонамеренно изменили среду и привели к утечке учетных данных. например, для развертывания в OSSRH.
Для этого потребуется, чтобы на этапе «сборки» был запущен mvn Deploy -Pstaging (где профиль промежуточного указывает на внутренний «промежуточный» репозиторий).
ПРИМЕЧАНИЕ: этот «промежуточный» реестр будет использоваться не для SNAPSHOT, а для реальных выпусков. Это была бы просто «точка передачи» для этапов «сборки» и «публикации».
Я ожидал, что на этапе «публикации» можно будет просто извлечь пакет из реестра (все файлы, включая подписи и т. д.), а затем запустите mvn Deploy:deploy (а не просто Deploy, поскольку при этом также будет предпринята попытка запустить предыдущие этапы), чтобы переместить пакет дальше к конечному пункту назначения, внешний реестр.
Однако я понял, что это не работает, поскольку развертывание:deploy требует некоторых метаданных перед публикацией (это даже есть в FAQ по плагину):
р>

Код: Выделить всё

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy
(default-cli) on project XYZ: The packaging for this project did not assign a file to the
build artifact -> [Help 1]
Затем я нашел ответ, в котором предлагалось использовать mvn jar:jar Deploy:deploy, поскольку jar:jar не будет воссоздавать ранее существовавшие jar-файлы, а будет «заполнять контекст сборки" (что бы это ни значило).
Однако, когда я попробовал это, jar:jar выдал ошибку:

Код: Выделить всё

[WARNING] JAR will be empty - no content was marked for inclusion!

// ...

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:3.2.2:jar (default-cli) on
project XYZ: Error assembling JAR: Manifest file: /xyz/target/classes/META-INF/MANIFEST.MF
does not exist.
Что, я полагаю, связано с тем, что на этапе «публикации» нет доступа к исходному коду, а только к JAR-файлам?
Я даже запустил пакет mvn и проверил полученный MANIFEST.MF, чтобы узнать, смогу ли я автоматически сгенерировать его на этапе «публикации»... но это слишком сложно, и я не делаю этого. понимаю это достаточно хорошо, чтобы гибко воссоздать его (т. е. меняется ли формат в зависимости от версии jar:jar, например?), и я не знаю, будет ли jar:jar просто жаловаться в любом случае о чем-то другом...
Я заметил, что основной файл .jar содержит MANIFEST.MF, а вспомогательный .jars (источники, javadoc) имеет один, который практически пуст. .. поэтому разумно ли извлечь основной манифест и повторно использовать его?

Итак, возможно ли это вообще? Возможно ли на этапе «публикации» динамически создавать «контекст сборки», содержащий только те артефакты, которые были отправлены на этапе «сборки»?
Например, можно ли как-то успешно запустите mvn Deploy:deploy (или эквивалент), заданный

Код: Выделить всё

./target
├─ xyz-1.2.3-javadoc.jar
├─ xyz-1.2.3-javadoc.jar.asc
├─ xyz-1.2.3-javadoc.jar.md5
├─ xyz-1.2.3-javadoc.jar.sha1
├─ xyz-1.2.3.jar
├─ xyz-1.2.3.jar.asc
├─ xyz-1.2.3.jar.md5
├─ xyz-1.2.3.jar.sha1
├─ xyz-1.2.3.pom
├─ xyz-1.2.3.pom.asc
├─ xyz-1.2.3.pom.md5
├─ xyz-1.2.3.pom.sha1
(где xyz-1.2.3.pom содержит конфигурации для публикации в конечном пункте назначения)

Подробнее здесь: https://stackoverflow.com/questions/790 ... to-another
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»