Я пытаюсь настроить Ivy для приятной игры с Artifactory (популярным менеджером хранилища) и мне нужно подтверждение, что я иду по правильному пути.
Я предполагаю, что, как только у меня правильно настроен Artifactory на сервере репозитория, я могу просто указать Ivy на какой-либо каталог в ARTIFACTORY_HOME
и передать ему ту же информацию, что и обычному преобразователю URL. Таким образом, Artifactory получает информацию (какую команду обрабатывать, имя пользователя и пароль, и т. Д.) И вступает во владение от имени действительного хранилища. (Таким образом, если учетные данные неверны или у пользователя нет разрешения на выполнение запроса, Artifactory отправляет обратно 404 / и т. Д.)
Итак, для начала, если это не так, пожалуйста, поправьте меня!
Так вот что я думаю. В сборке Ant для моего проекта:
<ivy:settings url="http://my-repo-server.com/ivy/settings/ivy-settings.xml"/>
<target name="ivy-resolve">
<ivy:configure host="http://my-repo-server.com/ivy"
realm="ivy"
username="developer" <!-- "developer" is read-only user configured in Artifactory -->
passwd="38ur84u83j38y83u" <!-- encrypted password provided by Artifactory -->
override="false"/>
<ivy:resolve file="ivy.xml" conf="compile"/>
</target>
А затем (на стороне сервера) ivy-settings.xml
:
<resolvers>
<url name="repo-server">
<ivy pattern="http://my-repo-server.com/ivy/???"/>
<artifact pattern="http://my-repo-server.com/ivy/???"/>
</url>
</resolvers>
Таким образом, когда Ant-сборка разработчика запускает цель ivy-resolve
, клиент Ivy знает, куда идти, чтобы найти файл ivy-settings.xml
, и настраивает себя, используя developer
пользователя и зашифрованный пароль, который я установил в Artifactory.
Единственная проблема, я не уверен, что указать для шаблонов Ivy & Artifact в файле настроек? Я предполагаю, что мне нужно установить для них какой-то каталог, которым управляет Artifactory, но я не уверен, что (в Artifactory мое репо использует макет репо Ivy по умолчанию).
Кроме того, я нарушаю "лучшие практики" Artifactory, размещая файл настроек на сервере репо, как сделал я? Должен ли я поместить его в некоторый управляемый Artifactory (скрытый) каталог? Если да, то где и почему?
В конечном счете, примеры кода помогают мне учиться быстрее и проще (я учусь на графике), поэтому любые программные толчки в правильном направлении чрезвычайно ценятся!
Заранее спасибо!