Кто настраивает все эти репозитории Maven в моей сборке? - PullRequest
1 голос
/ 07 апреля 2020

Я использую mvn dependency:list-repositories, чтобы выяснить, какие репозитории на самом деле рассматривает Maven и их порядок (мне нужно это для устранения неполадок в моей settings.xml конфигурации).

Для более крупного проекта, который не использует любые теги <repository> в его файлах pom.xml (родительский и дочерний модули) Я получаю гораздо больше репозиториев, чем ожидал. Я ожидал получить только центральный репозиторий Maven, но получаю:

[INFO] Repositories used by this build:
[INFO]        id: sonatype-nexus-snapshots
      url: https://oss.sonatype.org/content/repositories/snapshots
   layout: default
snapshots: [enabled => true, update => daily]
 releases: [enabled => false, update => daily]

[INFO]        id: apache.snapshots
      url: http://repository.apache.org/snapshots
   layout: default
snapshots: [enabled => true, update => daily]
 releases: [enabled => false, update => daily]

[INFO]        id: netbeans
      url: http://bits.netbeans.org/nexus/content/groups/netbeans
   layout: default
snapshots: [enabled => false, update => daily]
 releases: [enabled => true, update => daily]

[INFO]        id: spring-libs-snapshot
      url: https://repo.spring.io/libs-snapshot
   layout: default
snapshots: [enabled => true, update => daily]
 releases: [enabled => true, update => daily]

[INFO]        id: apache.snapshots
      url: https://repository.apache.org/snapshots
   layout: default
snapshots: [enabled => true, update => daily]
 releases: [enabled => false, update => daily]

[INFO]        id: spring-libs-release
      url: https://repo.spring.io/libs-release
   layout: default
snapshots: [enabled => true, update => daily]
 releases: [enabled => true, update => daily]

[INFO]        id: central
      url: https://repo.maven.apache.org/maven2
   layout: default
snapshots: [enabled => false, update => daily]
 releases: [enabled => true, update => daily]

Я искал, где мог быть суперпон, но не нашел для него абсолютного ответа. Я все еще смотрел в месте, указанном:

Но я больше ничего не вижу, кроме:

<repositories>
    <repository>
        <id>central</id>
        <name>Maven Repository Switchboard</name>
        <layout>default</layout>
        <url>http://repo1.maven.org/maven2</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

Итак, где сконфигурированы все эти репозитории или кто их конфигурирует / подразумевает автоматически?

1 Ответ

0 голосов
/ 08 апреля 2020

Решением для меня на самом деле была команда mvn help:evaluate, а затем, при появлении запроса, запрашивается значение ${project.repositories}. Я нашел это в этом SO-ответе (в этом вопросе пользователь хотел получить список репозиториев по умолчанию , в то время как я хотел получить список реально настроенных репозиториев ).

...
[INFO] Enter the Maven expression i.e. ${project.groupId} or 0 to exit?:
${project.repositories}

Результатом является фактический список репозиториев, видимых для файла POM:

<repositories>
  <repository>
    <id>confluent</id>
    <url>http://packages.confluent.io/maven/</url>
    <layout>default</layout>
  </repository>
  <repository>
    <id>central</id>
    <name>Central Repository</name>
    <url>https://repo.maven.apache.org/maven2</url>
    <layout>default</layout>
    <location>
      <lineNumber>27</lineNumber>
      <columnNumber>17</columnNumber>
      <source>
        <modelId>org.apache.maven:maven-model-builder:3.6.3:super-pom</modelId>
        <location>jar:file:/usr/local/Cellar/maven/3.6.3/libexec/lib/maven-model-builder-3.6.3.jar!/org/apache/maven/model/pom-4.0.0.xml</location>
      </source>
    </location>
    <idLocation>
      <lineNumber>28</lineNumber>
      <columnNumber>11</columnNumber>
      <source reference="../../location/source"/>
    </idLocation>
    <nameLocation>
      <lineNumber>29</lineNumber>
      <columnNumber>13</columnNumber>
      <source reference="../../location/source"/>
    </nameLocation>
    <urlLocation>
      <lineNumber>30</lineNumber>
      <columnNumber>12</columnNumber>
      <source reference="../../location/source"/>
    </urlLocation>
    <layoutLocation>
      <lineNumber>31</lineNumber>
      <columnNumber>15</columnNumber>
      <source reference="../../location/source"/>
    </layoutLocation>
    <snapshots>
      <enabled>false</enabled>
      <location>
        <lineNumber>32</lineNumber>
        <columnNumber>18</columnNumber>
        <source reference="../../../location/source"/>
      </location>
      <enabledLocation>
        <lineNumber>33</lineNumber>
        <columnNumber>18</columnNumber>
        <source reference="../../../location/source"/>
      </enabledLocation>
    </snapshots>
  </repository>
</repositories>
...