Переопределить репозитории в зависимостях, указанных через родительскую зависимость - PullRequest
0 голосов
/ 07 ноября 2019

Мой проект требует автономной сборки, то есть он должен быть собран без подключения к интернету. Хранилище также должно быть автономным, то есть содержать все эти зависимости. И я пытаюсь продавать артефакты Maven, необходимые для моего проекта. Я был частично успешным, указав раздел хранилища в POM:

    <repositories>
        <repository>
            <id>central</id>
            <url>file://${basedir}/../thirdparty/maven-repo</url>
            <snapshots><enabled>false</enabled></snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>file://${basedir}/../thirdparty/maven-repo</url>
            <snapshots><enabled>false</enabled></snapshots>
        </pluginRepository>
    </pluginRepositories>

Таким образом, большая часть артефактов извлекается из указанного каталога. К сожалению, некоторые из этих артефактов содержат ссылку на jboss-parent артефакт:

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>34</version>
    </parent>

И этот артефакт содержит свой собственный раздел репозитория:

    <pluginRepositories>
      <pluginRepository>
        <id>jboss-public-repository</id>
        <name>JBoss Public Maven Repository</name>
        <url>https://repository.jboss.org/nexus/content/groups/public/</url>
        <layout>default</layout>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </pluginRepository>
    </pluginRepositories>

В результате некоторые зависимости загружаются из этогоместоположение вместо моей локальной папки, игнорируя мои переопределения. Изменение моего pom.xml на

    <repositories>
        <repository>
            <id>central</id>
            <url>file://${basedir}/../thirdparty/maven-repo</url>
            <snapshots><enabled>false</enabled></snapshots>
        </repository>
        <repository>
            <id>jboss-public-repository</id>
            <url>file://${basedir}/../thirdparty/maven-repo</url>
            <snapshots><enabled>false</enabled></snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>file://${basedir}/../thirdparty/maven-repo</url>
            <snapshots><enabled>false</enabled></snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>jboss-public-repository</id>
            <url>file://${basedir}/../thirdparty/maven-repo</url>
            <snapshots><enabled>false</enabled></snapshots>
        </pluginRepository>
    </pluginRepositories>

не помогает, и плагины, такие как maven-bundle-plugin, в любом случае извлекаются из Интернета.

Так что мой вопрос. Есть ли способ принудительно переопределить репозитории на основе POM? Использование settings.xml, автономных серверов репозиториев и т. Д. Не вариант - проект должен быть собран с помощью всего нескольких инструментов. Я проверил другие подобные ответы, но они обычно упоминают о запуске вашего собственного сервера репозитория и связи с ним с помощью опции зеркала в файле settings.xml.

Спасибо

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