Использование mvn deploy через 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 5

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 (см. id репозитория в pom).

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