#java #maven #repository #settings #pom.xml
Вопрос:
Я получил следующую ошибку при попытке создать проект. Проект является проектом spring и использует IntelliJ с java 8.
Could not find artifact org.springframework.data:spring-data-bom:pom:2021.0.0-M2 in nexus (http://maven:8081/nexus/content/groups/public)
Есть ли способ исправить это с помощью setting.xml?
У меня нет доступа к какой-либо конфигурации на http://maven:8081/nexus/content/groups/public
Это моя обстановка.
<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">
<servers>
<server>
<id>releases</id>
<username>me</username>
<password>mee</password> <!-- impossible password here :-) -->
</server>
<server>
<id>snapshots</id>
<username>me</username>
<password>mee</password> <!-- impossible password here :-) -->
</server>
<server>
<id>nexus</id>
<username>me</username>
<password>mee</password> <!-- impossible password here :-) -->
</server>
</servers>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven: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>https://mvnrepository.com/repos/central</url>
<releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>https://mvnrepository.com/repos/central</url>
<releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>defaultprofile</id>
<!-- if you want to be able to switch to the defaultprofile profile put this in the active profile -->
<repositories>
<repository>
<id>maven.default</id>
<name>default maven repository</name>
<url>http://repo1.maven.org/maven2</url>
<releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
</repository>
<repository>
<id>maven.snapshot</id>
<name>Maven snapshot repository</name>
<releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>
<url>http://people.apache.org/repo/m2-snapshot-repository</url>
<snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>
</repository>
<repository>
<id>vaadin-addons</id>
<url>https://maven.vaadin.com/vaadin-addons</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
Комментарии:
1. Сначала эти записи:
https://mvnrepository.com/repos/central
просто неверны… Уберите их. Во-вторых, эти записи:http://repo1.maven.org/maven2
не нужны. Удалите их также.. Если вы хотите использовать веховые выпуски spring boot, вам необходимо добавить это в свой менеджер репозиториев, а не в файл pom, потому что вы уже используете менеджер репозиториев.2. Пожалуйста, прокомментируйте мой ответ, вместо того, чтобы редактировать его.
Ответ №1:
Если вы установите
<mirrorOf>*</mirrorOf>
<url>http://maven:8081/nexus/content/groups/public</url>
затем вы отправляете каждый запрос в этот репозиторий, независимо от остальной части settings.xml
. Вам нужно сделать что-то вроде
<mirrorOf>*,!central</mirrorOf>
<url>http://maven:8081/nexus/content/groups/public</url>
но, пожалуйста, также исправьте/удалите URL-адреса, как сказал хмарбайз.
Комментарии:
1. Я добавил
<mirror> <!--This sends everything else to /public --> <id>nexus</id> <mirrorOf>*,!central</mirrorOf> <url>http://maven:8081/nexus/content/groups/public</url> </mirror>
и удалил остальное, но ошибка все еще там.2. Вы строили с
-U
помощью , такmvn clean install -U
?3. Нет, я просто выполняю чистую установку mvn
4. Затем повторите попытку
-U
, чтобы избежать ошибок из-за кэширования.