Используя приведенное ниже изображение в качестве справки, у меня есть несколько проблем на данный момент.
Я пытаюсь создать шаблон settings.xml для maven изнутри артефакта, чтобы я мог загрузить свои зависимости maven из артефакта. Это все, что я пытаюсь сделать. Я не пытаюсь установить репозиторий развертывания или что-то еще. Я только пытаюсь установить свой прокси-сервер зависимостей для плагинов maven.
Мой репозиторий maven, который будет загружать/кешировать из maven Central, называется «joeytest-maven-central-remote».
Когда я нажимаю «Настроить меня» в артефактах, вот что происходит:
Мне предлагается выбрать репозиторий. Естественно, я бы просто выбрал удаленное репо, которое только что настроил. Вот откуда я хочу скачать свои зависимости. Проблема в том, что я не могу. Это не вариант. Мне пришлось создать еще одно репо под названием «joeytest-maven-dev-local», которое, предположительно, было бы тем, на что я бы развернул свои артефакты maven, просто чтобы было что выбрать в этом раскрывающемся списке. Почему я не могу просто выбрать удаленное репо, которое я создал? Это проблема №1.
Двигаясь дальше на вкладке настроить, я теперь вынужден определить четыре (4) виртуальных репозитория для выпусков/моментальных снимков/выпусков подключаемых модулей/моментальных снимков подключаемых модулей. Почему? Какое это имеет отношение к тому, что я просто хочу загрузить зависимости из этого удаленного репо? Я понимаю назначение виртуальных репозиториев, но никоим образом не хочу/не должен их использовать в данный момент. Разве они не должны быть функцией удобства/логистики, а не обязательным компонентом? Это проблема №2.
Являются ли эти проблемы просто плохо разработанным графическим интерфейсом «настроить меня», и мне не требуется вводить какую-либо эту информацию. Я могу просто получить шаблон, удалить все ненужное и загрузить зависимости прямо из моего первоначально созданного удаленного репо?
Или я полностью упустил некоторые предварительные условия, и если да, то может ли кто-нибудь пролить свет на то, почему эти компоненты необходимы для загрузки файла шаблона settingsl.xml?
Заранее спасибо,
Я собираюсь ответить на это сам сейчас, когда я решил это. Надеюсь, это поможет другим.
Я довольно сильно зациклился на этом и хочу поделиться своими выводами. В Artifextory есть кнопка «Настроить меня» в правом верхнем углу экрана выбора репозитория. Эта кнопка упоминается в нескольких онлайн-ресурсах как отправная точка при настройке артефакта для загрузки ваших зависимостей maven. Однако в онлайн-статьях не упоминается, что эта кнопка используется для создания шаблона, который позволяет гораздо больше, чем просто загрузка зависимостей. Он также настраивает вас на развертывание и использование виртуальных артефактных репозиториев. В результате, чтобы использовать эту функцию, у вас уже должен быть репозиторий развертывания и хотя бы один виртуальный репозиторий, настроенный в артефакте. Это создает ложное предположение, что эти элементы необходимы для использования артефактов в качестве прокси для загрузки зависимостей. Это неверно. Смотри ниже.
Вы можете вообще пропустить эту кнопку «настроить меня» и вместо этого напрямую настроить файл settings.xml на стороне maven. Этот метод чище и проще для начинающих. Если вам нужна отправная точка для maven settings.xml, существуют бесплатные шаблоны, которые вы можете использовать для запуска. Вот рабочий пример шаблона для справки, чтобы вы начали.
<?xml version = "1.0" encoding = "UTF-8"?>
<settings xsi:schemaLocation = "http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd" xmlns = "http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
<servers>
<server>
<id>myRepository</id>
<username>JohnDoe</username>
<password>****</password>
</server>
<server>
<id>myPluginRepository</id>
<username>JohnDoe</username>
<password>****</password>
</server>
</servers>
<profiles>
<profile>
<id>artifactory_default_profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>myRepository</id>
<name>joeytest-maven-libs-virtual</name>
<url>https://artifactory.dev.{myorg}.com:443/artifactory/joeytest-maven-libs-virtual/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>myPluginRepository</id>
<name>joeytest-maven-libs-virtual</name>
<url>https://artifactory.dev.{myorg}.com:443/artifactory/joeytest-maven-libs-virtual/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory_default_profile</activeProfile>
</activeProfiles>
</settings>
Этот шаблон делает 2 вещи:
Все, что вам нужно для использования артефакта в качестве прокси для загрузки зависимостей, — это хотя бы один удаленный репозиторий, созданный в артефакте, который имеет действительный URL-адрес для исходных артефактов извне. Помимо этого, если хотите, вы можете создать репозитории развертывания для своих сборок и/или создать виртуальные репозитории для объединения других артефактных репозиториев, но эти шаги совершенно необязательны.
Спасибо @EdwinBuck, я пояснил, что это для артефактов, и добавил этот язык в исходный пост.
Джоуи, не могли бы вы указать, какой инструмент использует это отображение «настроить меня»? Мне непонятно, это экран IntelliJ или какое-то другое программное обеспечение. Я думаю, что знание того, какое программное обеспечение обеспечивает этот дисплей, поможет многим людям, у которых может быть такая же / похожая проблема, и это поможет другим, которые также могут предложить лучшее решение.