Назад | Перейти на главную страницу

Изменение Maven POM для получения файла локально

Моя сборка mvn пытается получить следующий файл из онлайн-репозитория.

http://BAD_WEBSITE/repositories/smpsnapshots/org/jboss/aop/jboss-aop/
2.0.0-SNAPSHOT/maven-metadata.xml

Однако этот URL больше не существует.

У меня есть файл maven-metadata.xml, сохраненный локально, но как я могу изменить свой файл POM, чтобы получить файл локально?

Здесь мой файл конфигурации указывает этот неправильный URL-адрес для поиска файла.

SNAPSHOT.pom

     <distributionManagement>    <!-- Declare the release repository to deploy the 
.zip file to -->
         <repository>
           <id>smpreleases</id>
           <name>Releases</name>
           <url>http://BAD_WEBSITE/content/repositories/smpreleases</url>
         </repository>
         <!-- Declare the snapshot repository to deploy the .zip file to -->
         <snapshotRepository>
           <id>smpsnapshots</id>
           <name>Snapshots</name>
           <url>http://BAD_WEBSITE/content/repositories/smpsnapshots</url>
         </snapshotRepository>    
     </distributionManagement>

Любое быстрое исправление будет временным; вы будете сталкиваться с одной и той же проблемой снова и снова, и вам будет трудно вручную управлять ситуацией. Самое простое и надежное решение этой проблемы (и связанных с ней проблем: отсутствие зависимостей, неработающие серверы, работа без подключения) легко исправить, просто установив свой собственный локальный репозиторий maven. (А это действительно просто: связь ИМО самый простой.)

Как только это будет сделано (так просто как разархивировать & запустить сервер), затем направьте все свои проекты maven на этот локальный сервер. (Это может быть локальный хост или другой сервер в вашей сети.) Предполагая на данный момент нексус, настроить его как зеркало всех используемых вами удаленных репо. Он будет кэшировать эти артефакты для вас, ускоряя создание новых сборок в новых проектах и ​​/ или новых серверах. И теперь вы также можете нажать (развернуть) на этот сервер, чтобы поделиться своими артефактами с другими проектами maven. Здесь можно поставить и протестировать вещи (например, jenkins / hudson) перед развертыванием в публичном репозитории (если вы это сделаете).

Просто помни:

  • любые артефакты, не являющиеся снимками, имеют только одну контрольную сумму (sha1 / md5) и всегда должны быть универсально уникальными - поэтому не имеет значения, исходят ли они от вашего локального зеркала или реального пульта. (Не создавайте один и тот же артефакт выпуска более одного раза.)
  • не помещайте информацию о репозитории в ваш pom; вложить все это в settings.xml : либо ~/.m2/settings.xml или запустите maven с mvn -s path/to/my/settings.xml