У меня есть зеркало в settings.xml и pom.xml вот так
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>${user.home}/.m2/repository</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<server>
<id>nexus-release</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>nexus-snapshot</id>
<username>username</username>
<password>password</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus-any</id>
<mirrorOf>central</mirrorOf>
<name>Nexus any</name>
<url>http://anyHost:2227/repository/maven-public</url>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
pom.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.my.projecy</groupId>
<artifactId>my-project</artifactId>
<packaging>pom</packaging>
<version>1.3.0</version>
<modules>
<module>my-project-pool</module>
<module>my-project-business</module>
<module>my-project-web-deploy</module>
<module>my-project-task-deploy</module>
<module>my-project-stats</module>
<module>my-project-bizlog</module>
</modules>
<name>my-project</name>
<description>Educational Administration Offline System</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<mybatis.version>1.3.2</mybatis.version>
<httpClient.version>4.5.5</httpClient.version>
<maven.plugins.jar.version>3.1.0</maven.plugins.jar.version>
<maven.plugins.assembly.version>3.1.0</maven.plugins.assembly.version>
<offline.api.version>1.3.1-SNAPSHOT</offline.api.version>
<online.api.version>1.3.0-SNAPSHOT</online.api.version>
<starter.httpclient.version>1.0.0-SNAPSHOT</starter.httpclient.version>
<lombok.version>1.16.2</lombok.version>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.my.projecy.starter</groupId>
<artifactId>httpclient-starter</artifactId>
<version>${starter.httpclient.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>bluesky-common</artifactId>
<version>1.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>ea-api-online</artifactId>
<version>${online.api.version}</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpClient.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>my-project-pool</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>my-project-business</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>my-project-web-deploy</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>my-project-task-deploy</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>ea-api-offline</artifactId>
<version>${offline.api.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>my-project-stats</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.my.projecy</groupId>
<artifactId>my-project-bizlog</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven.plugins.assembly.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
Но когда я пытаюсь скомпилировать свой проект, я получаю такую ошибку:
Could not find artifact com.my.package:httpclient-starter:jar:1.0.0-SNAPSHOT
in spring-snapshot (https://repo.spring.io/snapshot)
mvn clean compile -UНравится:
<mirror>
<id>my-id</id>
<mirrorOf>*</mirrorOf>
<name>any name</name>
<url>http://anyHost:2227/repository/maven-public</url>
</mirror>
Как я могу узнать, почему maven загружает эту зависимость из весеннего репо?
@khmarbaise Больше информации обновлено.
попробуйте запустить mvn: dependency tree. Это переходная зависимость?
Дело в том, что многие из весенних - xxx pom содержат определение весенних репозиториев.




Правильная установка settings.xml для использования менеджера репозитория должна выглядеть так:
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
<servers>
<!-- Possible authentications for access to nexus -->
<server>
<id>snapshots</id>
<username>xxx</username>
<password>xxx</password>
</server>
<server>
<id>releases</id>
<username>xxx</username>
<password>xxx</password>
</server>
</servers>
</settings>
это правильно перенаправит все запросы, которые определены в вашем собственном или другом pom (например, в репозиториях spring -boot), в ваш внутренний менеджер репозитория.
Если у меня есть сторонняя зависимость <mirrorOf>*</mirrorOf>, это не работает для меня. Если я установлю <mirrorOf>central</mirrorOf> с вашим шаблоном settings.xml, maven по-прежнему будет загружать зависимость из репозитория Spring.
Если вы являетесь сторонним лицом, вы должны загрузить их в свой менеджер репозитория и настроить его в своем менеджере репозитория ... и оставить *, как я предлагал ..
Я не видел "httpclient-starter: jar: 1.0.0-SNAPSHOT" в этой банке в repo.spring.io.
1) Попробуйте открыть в браузере repo.spring.io. Затем проверьте, существует ли в нем соответствующая банка, а также проверьте настройки прокси-сервера в конфигурации settings.xml.
https://repo.spring.io/snapshot
Настройки прокси-сервера Maven
2) com.my.package: httpclient-starter: jar: 1.0.0-SNAPSHOT, если существует, удалите его вручную из репозитория .m2
3) mvn clean install.
4) Проверьте свой RepositoryId и имя репозитория, как показано на рис.
Нет, в моем зеркале есть com.my.package:httpclient-starter:jar:1.0.0-SNAPSHOT, который для меня не работает, central работает для меня, но, на мой взгляд, это не очень хорошая идея.
Вероятно, <mirrorOf> central </mirrorOf> тогда имя неправильное. еще раз проверьте имя зеркала
@ Karl.Li Проверьте свой RepositoryId и имя репозитория, как показано на рис.
Начнем с части загрузки Maven из репозитория снимков Spring. Из того, что вы показали нам в вопросе, по крайней мере неясно (если не существует), что вы определили какое-либо хранилище снимков в своем проекте. Поскольку это проект Spring Boot, он установит его через родительский проект (..repo.spring.io..).
Вот почему ваш проект обращается к этому конкретному серверу.
Вы пытаетесь скачать банку, которую наверняка поставили на нексус, не так ли? Версия - <sth>-SNAPSHOT, которая заставляет Maven пытаться получить данные с некоторого сервера моментальных снимков.
Ваше зеркало - это центральный репозиторий mirrorOf, где, как я полагаю, ваша банка не живет, а находится «в» зеркале.
Моя идея состояла бы в том, чтобы установить ваше зеркало в качестве репозитория в pom.xml вашего проекта следующим образом
<repositories>
<repository>
<id>myInternalRepository</id>
<url>http://localhost:8081/nexus/content/groups/???</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
вы можете установить банку httpclient-starter: jar: 1.0.0-SNAPSHOT в локальный репозиторий maven с помощью команды maven install
Без pom файла сложно сказать?