Неразрешаемый родительский POM в SpringBoot

Я пытаюсь настроить проект Maven для приложения Spring Boot, но при попытке сохранить файл pom.xml у меня возникает следующая проблема:


Project build error: Non-resolvable parent POM for
io.javabrains.springbootquickstart:course-api:0.0.1-SNAPSHOT: Could not find artifact
org.springframework.boot:spring-boot-starter-parent:pom:${revision} in central (https:// repo.maven.apache.org/maven2) and 'parent.relativePath' points at wrong local POM

Вот мой файл pom.xml:

<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>io.javabrains.springbootquickstart</groupId>
  <artifactId>course-api</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>Java Api course</name>


 <parent>
    <!-- Your own application should inherit from spring-boot-starter-parent -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2 RELEASE</version>
  </parent>



 <dependencies>
   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
 </dependencies>
</project>

Откуда взять ${revision}?

Arnaud 03.08.2018 14:10

Я следую руководству, в котором версия 1.4.2 RELEASE, но все же я получаю эту ошибку, поэтому я поискал демонстрационный файл, в котором была $ {revision}.

Kshitiz Sharma 03.08.2018 14:12

Затем установите вашу версию 1.4.2 RELEASE

T A 03.08.2018 14:13

Изначально я пробовал только это, но ошибка такая же

Kshitiz Sharma 03.08.2018 14:14

imo repo.maven.apache.org/maven2/org/springframework/boot/… - действительный URL-адрес, не могли бы вы еще раз проверить и опубликовать сообщение об ошибке для версии 1.4.2 RELEASE?

T A 03.08.2018 14:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
10
5
26 801
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Откуда ревизия будет заменена?

Измените pom.xml, указав любую версию, как показано ниже.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.RELEASE</version>
</parent>
Ответ принят как подходящий

Решил вопрос. Произошла небольшая ошибка. Это должно быть 1.4.2.РЕЛИЗ вместо 1.4.2 ВЫПУСК. Между РЕЛИЗ и 2 не должно быть пробелов. Эта маленькая точка была причиной проблемы.

Здесь :

<parent>
  <!-- Your own application should inherit from spring-boot-starter-parent -->
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>${revision}</version>
</parent>

${revision} будет интерполирован Maven (то есть переведен), только если Maven найдет переменную с именем revision. Но revision не является встроенным в Maven переменными. Пока переменные как ${project.version} и ${project.artifactId} есть.

Итак, в вашем случае вам нужно явно объявить или передать переменную, если вы хотите ее использовать.

Например, он может работать, добавив его:

<properties>
  <revision>1.4.2 RELEASE</revision>
</properties>

Или запустив maven, например: mvn package -Drevision = "1.4.2 RELEASE"

Вы можете найти дополнительную информацию здесь.

Обратите внимание, что свойство revision имеет слишком широкое значение и не помогает понять значение свойства. Более точное имя, такое как ${spring-boot-version}, имело бы больший смысл.

Это может быть из-за того, что инициализатор Spring создал файл pom проекта, подобный этому

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent> 

Однако sts совместим с версией "2.0.4.RELEASE", просто внесите это изменение.

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent> 

далее Maven -> Обновить проект

Проголосовали за, потому что это решило мою проблему в STS. Как ты это понял?

Hugo M. Zuleta 22.04.2019 23:12

Я настроил проект, используя инициализатор sts и spring по отдельности, а затем сравнивая pom один за другим.

Niraj Jha 09.05.2019 08:37

Проверьте настройки прокси. Если вы работаете с ПК компании, на котором уже настроен Proxys для браузеров, но еще не настроен для вашей IDE или maven, вы, вероятно, можете ввести ту же информацию, что и для ваших браузеров. Вы можете найти их, например, открыв сетевые настройки вашего браузера -> Настройки локальной сети, а затем загрузите файл proxy.pac с адреса, указанного в поле ввода. Этот файл доступен для чтения человеком.

После этого вам все еще может потребоваться обрабатывать ошибки SSL с помощью

  • правильное обращение с собственной PKI компании или
  • игнорирование ошибок SSL или
  • использование http вместо https https://stackoverflow.com/a/46665598/1410212 НЕ ВОЗМОЖНО БОЛЬШЕ С 2020 г.

Заменять

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2 RELEASE</version>
</parent>

с участием

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
   <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
</parent>

Пожалуйста, добавьте объяснение

Jan Černý 23.02.2020 10:47

Для меня в моей системе действительно работал Антивирус. Итак, я отключил это на час и изменил свою версию на 2.0.4.RELEASE, и у меня это работает.

Другие вопросы по теме