Проблема с проектом GitLab, который публикуется в реестре пакетов, и его невозможно извлечь из другого реестра пакетов.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с проектом GitLab, который публикуется в реестре пакетов, и его невозможно извлечь из другого реестра пакетов.

Сообщение Anonymous »

Весь этот код написан на Java и создан с помощью Maven. Я использовал рекомендации, представленные здесь и здесь, чтобы внести изменения в конфигурации.
У меня есть проект GitLab, который предоставляет библиотеку часто используемых классов для других проектов (назовем это lib-1 ). Я внес изменения в конфигурацию (как поставщика, так и потребителей) в pom.xml, настройки проекта GitLab и т. д., чтобы опубликовать построенную библиотеку в реестре пакетов проекта GitLab. Я подтвердил, что все это работает, включая возможность использования этой библиотеки потребительскими проектами.
Я разработал другую, отдельную библиотеку (в отдельном проекте GitLab), которая предоставляет другой набор общих функций. классы (назовем это lib-2). Проект выше () также необходимо использовать эту библиотеку. lib-2 также настроен на отправку в реестр пакетов проекта, и я проверил, что она помещается в реестр. Я также проверил, что (несвязанный) потребительский проект может извлекать и использовать его.
Я столкнулся с проблемой, когда lib-1 не может быть собран, потому что он не могу загрузить библиотеку lib-2.
Вот ошибка:

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

[ERROR] Failed to execute goal on project prometheus-common: Could not resolve dependencies for project com.beast-code.devops:prometheus-common:jar:1.4.0: Failed to collect dependencies at com.beastcode.devops:rest-api-utility:jar:3.0.0: Failed to read artifact descriptor for com.beastcode.devops:rest-api-utility:jar:3.0.0: Could not transfer artifact com.beastcode.devops:rest-api-utility:pom:3.0.0 from/to gitlab-maven-rest (https://gitlab.phactory.beast-code.com/api/v4/projects/1155/packages/maven): Transfer failed for https://gitlab.phactory.beast-code.com/api/v4/projects/1155/packages/maven/com/beastcode/devops/rest-api-utility/3.0.0/rest-api-utility-3.0.0.pom: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
prometheus-common — это lib-1, а rest-api-utility — lib-2. Суть ошибки, похоже, указывает на проблему с сертификатом, но я не знаю, как и где она проявляется. Как я упоминал ранее, у меня есть несвязанный потребитель lib-2, который может без проблем использовать эту библиотеку.
Вот различные файлы из обеих lib-1< /code> и lib-2.
= (AKA prometheus-common)
pom.xml (соответствующие разделы):

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

https://gitlab.phactory.beast-code.com/api/v4
863

1155
3.0.0




gitlab-maven-rest-api
${gitlab-api-url}/projects/${rest-api-utility.project-id}/packages/maven



gitlab-maven-prometheus-common
${gitlab-api-url}/projects/${prometheus-common.project-id}/packages/maven





gitlab-maven-prometheus-common
${gitlab-api-url}/projects/${prometheus-common.project-id}/packages/maven



gitlab-maven-prometheus-common
${gitlab-api-url}/projects/${prometheus-common.project-id}/packages/maven






com.beastcode.devops
rest-api-utility
${rest-api-utility.version}






com.beastcode.devops
rest-api-utility


ci_settings.xml:

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



gitlab-maven-prometheus-common



Job-Token
${CI_JOB_TOKEN}






.gitlab-ci.yml (соответствующие разделы):

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

push-to-package-registry:
stage: push
image: maven:3.6-jdk-11
script:
- 'mkdir ./certs'
- 'export CRT_FILE=./certs/BCRCA.crt'
- 'export CA_CERTS_PATH=$JAVA_HOME/lib/security/cacerts'
- 'echo "$BCRCA" > $CRT_FILE'
- 'keytool -import -noprompt -trustcacerts -alias BCRCA -file $CRT_FILE -keystore $CA_CERTS_PATH -storepass changeit'
- 'keytool -list -keystore $CA_CERTS_PATH -alias BCRCA -noprompt -storepass changeit'
- 'rm -rf ./certs'
- 'mvn clean deploy -s ci_settings.xml -DskipTests'
rules:
- if: $CI_COMMIT_REF_PROTECTED == "true" &&  $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
BRCCA содержит сертификат x.509, подписанный корневым центром сертификации.
= (также известная как rest-api-utility)
pom.xml (соответствующие разделы):

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

https://gitlab.phactory.beast-code.com/api/v4
1155




gitlab-maven
${gitlab-api-url}/projects/${gitlab-project-id}/packages/maven





gitlab-maven
${gitlab-api-url}/projects/${gitlab-project-id}/packages/maven



gitlab-maven
${gitlab-api-url}/projects/${gitlab-project-id}/packages/maven


ci_settings.xml:

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



gitlab-maven



Job-Token
${CI_JOB_TOKEN}






.gitlab-ci.yml (соответствующие разделы):

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

push-to-package-registry:
stage: push
image: maven:3.6-jdk-11
script:
- 'mkdir ./certs'
- 'export CRT_FILE=./certs/BCRCA.crt'
- 'export CA_CERTS_PATH=$JAVA_HOME/lib/security/cacerts'
- 'echo "$BCRCA" > $CRT_FILE'
- 'keytool -import -noprompt -trustcacerts -alias BCRCA -file $CRT_FILE -keystore $CA_CERTS_PATH -storepass changeit'
- 'keytool -list -keystore $CA_CERTS_PATH -alias BCRCA -noprompt -storepass changeit'
- 'rm -rf ./certs'
- 'mvn clean deploy -s ci_settings.xml -DskipTests'
rules:
- if: $CI_COMMIT_REF_PROTECTED == "true" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
BCRCA содержит сертификат x.509, подписанный корневым центром сертификации.
Кто-нибудь уже сталкивался с этим вариантом использования и сталкивался с этим раньше? Документация GitLab описывает довольно много того, что необходимо сделать, но я думаю, что есть несколько областей, которые умалчиваются и оставляются на усмотрение разработчика. Они не охватывают ситуацию, подобную той, которую я здесь делаю.
Немного второстепенная тема:
Вся логика в каждом Задание «push to regsitry» перед развертыванием maven (насколько мне известно) устанавливает сертификат X.509, подписанный корневым центром сертификации, в хранилище доверенных сертификатов JVM, упакованное в образ. Я не уверен на 100%, что здесь происходит, но у меня есть память, что это нужно сделать, иначе что-то не получится. Мне любопытно, может ли это иметь какое-либо отношение к вышеизложенной проблеме. Сообщение об ошибке, похоже, указывает на проблему с сертификатом.

Подробнее здесь: https://stackoverflow.com/questions/785 ... annot-pull
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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