Maven не может найти артефакты в удаленном хранилище файлов - PullRequest
0 голосов
/ 17 мая 2019

Справочная информация: я работаю над проектом Maven в закрытой сети, что означает, что я не могу подключиться к Maven Central. У меня есть папка репозитория, содержащая все необходимые мне артефакты, включая плагины и артефакты maven. Также я не могу использовать или установить Nexus.

Проблема: я хочу запустить задание Jenkins, используя maven 3.6.0 / jdk 1.8.0_162. Мой файл settings.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>D:\Maven\repository</localRepository>

  <interactiveMode>false</interactiveMode>

  <offline>false</offline>

  <pluginGroups />

  <proxies />

  <servers />

  <mirrors>
    <mirror>
      <id>ExternalRespositoryMirror</id>
      <name>Maven External Repository Mirror</name>
      <url>file://myserver/repository/maven/repository</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>jenkins</id>
      <repositories>
        <repository>
          <id>central</id>
          <name>Maven External Dependencies Repository</name>
          <url>file://myserver/repository/maven/repository</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <name>Maven External Plugins Repository</name>
          <url>file://myserver/repository/maven/repository</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>jenkins</activeProfile>
  </activeProfiles>

</settings>

В моем ПОМ нет раздела репозитория, поскольку раб Дженкинс должен определить, где их взять.

При сборке я получаю следующую ошибку:

[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Could not find artifact org.apache.maven.plugins:maven-clean-plugin:jar:2.5 in ExternalRespositoryMirror (file://myserver/repository/maven/repository) -> [Help 1]

Я могу открыть файл: // url, и артефакт «maven-clean-plugin-2.5.jar» находится в папке \ maven \ repository \ org \ apache \ maven \ plugins \ maven-clean-plugin \ 2.5

В чем может быть причина того, что мавен не может найти артефакт? Он присутствует в локальном репозитории (D: \ Maven \ repository), поэтому в любом случае он не должен запрашивать сетевое репо.

1 Ответ

1 голос
/ 23 мая 2019

Вы можете просто попробовать установить jar-файлы в локальный репозиторий и просто пропустить удаленный аспект. Maven заглянет в локальный репозиторий перед удалением.

Руководство по установке сторонних JAR-файлов

Создайте один pom для копирования, свяжите его с фазой ресурсов процесса. Вы можете вытащить их (например, scp / robocopy / unzip) из известного местоположения (не проверять в VCS; плохая практика, потраченное впустую пространство) и установить их.

fyi, это противоположно тому, что делает aether-ant Tasks, который извлекает из хранилища amaven и копирует в целевой каталог, полезно для сборок ant для использования jars из (nexus) хранилища, см .:

Задачи Aether / Ant

Apache Ant и Eclipse Aether

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...