Использование mvn deploy через webdav: создание каталога

#deployment #maven #webdav

#развертывание #maven #webdav

Вопрос:

Мне удалось настроить maven так, чтобы он автоматически загружал последний снимок нашего программного обеспечения в наш общедоступный репозиторий maven. Пока это работает нормально, есть только незначительный недостаток, с которым я просто не могу справиться:

При развертывании нового снимка, скажем, например: <version>1.2-SNAPSHOT</version> каталог с именем 1.2-SNAPSHOT должен присутствовать в каталоге maven нашего веб-сервера, в противном случае maven завершится с ошибкой, указав:

Failed to deploy artifacts: Could not transfer artifact ... from/to basex.mvn
(http://abc.de/webdav/): Access denied to: http://abc.de/webdav/1.2-SNAPSHOT/...

Как обычно, при запуске нового моментального снимка этот самый каталог еще не присутствует, поэтому я в конечном итоге создаю его вручную.

Есть ли у вас какие-либо идеи о том, как обойти это и заставить maven создать эту папку?

Комментарии:

1. Создание каталога работает с использованием FTP?

2. да, это так, извините за недостаточную точность.

3. Ха-ха, не беспокойтесь 🙂 . Вы должны добавить это в качестве ответа: я проголосую за это!

Ответ №1:

Вы уверены, что это не проблема на стороне сервера? Я развернул несколько библиотек, используя Webdav (через HTTPS), и в первый раз (с созданием каталога) это сработало.

Pom.xml Должен содержать описание сервера распространения.

 <distributionManagement>
   <repository>
      <id>RepoId</id>
      <name>Name of the Maven repository</name>
      <url>dav:https://thewebdavurl/</url>
      <uniqueVersion>false</uniqueVersion>
   </repository>
</distributionManagement>
  

Чтобы включить создание каталога, вам может потребоваться войти на сервер. Для этого вам необходимо добавить в серверную часть setting.xml учетные данные для RepoId (см. Идентификатор репозитория в pom).

 <server>
   <id>RepoId</id>
   <username>login</username>
   <password>pass</password>
</server>
  

Комментарии:

1. Извините, что не вернулся к вам раньше, используя OSX Finder, я могу создавать каталоги через dav. Извините, я не могу предоставить вам больше информации, но теперь он работает через FTP, поэтому мы решили придерживаться FTP.

2. Определен ли сервер DAV в settings.xml ? См. Отредактированное сообщение.

3. Извините, я совершенно забыл вернуться сюда раньше; оказалось, что он работает с использованием FTP, и я предполагаю, что здесь виновата наша реализация DAV, по какой-то причине, которую я не помню. Я все еще принял ваш ответ (спустя более года :))