Плагин Maven Bnd Repository не может получить артефакт из удаленного артефакта - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь заставить работать структуру bnd tools (началось с урока https://bndtools.org/tutorial.html)

Добавлено использование javax.vecmath (простая библиотека, как Я мог бы подумать) в cnf / central.maven file

javax.vecmath:vecmath:1.5.2

и добавил его для построения пути в org.example.impl со всем разрешением просто отлично .

У меня есть форк этой библиотеки в артефакте jFrog, работающем на удаленном сервере, поэтому следующим шагом было определение этого хранилища при добавлении cnf / build.bnd (как описано в https://bnd.bndtools.org/plugins/maven.html)

-plugin.10.Remote = \
    aQute.bnd.repository.maven.provider.MavenBndRepository; \
        releaseUrl=https://artifactory.website.com/artifactory/libs-release-local/; \
        snapshotUrl=https://artifactory.website.com/artifactory/libs-snapshot-local/; \
        index=${.}/release.maven; \
        name="Maven Remote"

и соответствующие ссылки в cnf / release.maven

javax.vecmath:vecmath:2.1.5

При добавлении этой библиотеки в путь сборки я получаю ошибку "2.1 .5 [Не удалось получить javax.vecmath: vecmath: 2.1.5] "без дополнительной информации.

Я подумал, что единственная разница между maven central и моим артефактом должна заключаться в .m2 / settings . xml с учетными данными (в соответствии с https://bnd.bndtools.org/instructions/connection-settings плагин должен выглядеть там в первом месте e).

Конфигурация, которая работает для maven в eclipse (когда я открываю проект maven с зависимостью vecmath 2.1.5, он без проблем перетаскивается в .m2 / repository / javax / vecmath / vecmath / 2.1.5 и, как только он там разрешается bnd)

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <servers>
    <server>
      <username>username</username>
      <password>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
      <id>central</id>
    </server>
    <server>
      <username>username</username>
      <password>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
      <id>snapshots</id>
    </server>
  </servers>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>libs-release</name>
          <url>https://artifactory.website.com/artifactory/libs-release</url>
        </repository>
        <repository>
          <snapshots />
          <id>snapshots</id>
          <name>libs-snapshot</name>
          <url>https://artifactory.website.com/artifactory/libs-snapshot</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>libs-release</name>
          <url>https://artifactory.website.com/artifactory/libs-release</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots />
          <id>snapshots</id>
          <name>libs-snapshot</name>
          <url>https://artifactory.website.com/artifactory/libs-snapshot</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>

Из этого кажется, что у bnd нет проблем с загрузкой из центрального хранилища maven в локальный репозиторий m2 и использованием его оттуда, но не может подключиться к моей артефакте. Я пропускаю какие-то настройки клавиш или разницу?

1 Ответ

0 голосов
/ 01 мая 2020

Закончилось решение проблемы с помощью https://groups.google.com/forum/#! Forum / bndtools-users Обнаружив две (три?) Проблемы с моей конфигурацией.

Правильная форма для определения репозитория в build.bnd кажется

-plugin.10.Remote: \
    aQute.bnd.repository.maven.provider.MavenBndRepository; \
        releaseUrl=https://artifactory.website.com/artifactory/libs-release-local/; \
        snapshotUrl=https://artifactory.website.com/artifactory/libs-snapshot-local/; \
        index=${.}/release.maven; \
        name="Maven Remote"

Поиск в https://bnd.bndtools.org/instructions/connection-settings конфигурации аутентификации сервера для bnd отличается от конфигурации maven (0.3.4 по некоторым причинам Я пропустил эту часть)

<server>
  <username>username</username>
  <password>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
  <id>https://*website.com</id>
</server>

и bnd сначала ищет параметры подключения в .bnd , если их нет, затем в .m2 , но если в .bnd есть неправильные / недостаточные настройки, он не выглядит в .m2 , даже если он содержит правильные / достаточные значения.

The default order in which bnd looks for settings is:
`~/.bnd/connection-settings.xml`
`~/.m2/settings.xml`
...