[英]maven compile error - [ERROR] Non-resolvable import POM: Could not transfer artifact
Maven 新手,可能是新手错误。
我正在做 jenkins 课程的复数介绍。 在其中我们克隆了 git 存储库http://github.com/g0t4/jenkins2-course-spring-boot
在其子目录jenkins2-course-spring-boot\\spring-boot-samples\\spring-boot-sample-atmosphere
有以下 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>
<parent>
<!-- Your own application should inherit from spring-boot-starter-parent -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-samples</artifactId>
<version>1.4.0.BUILD-SNAPSHOT</version>
</parent>
<artifactId>spring-boot-sample-atmosphere</artifactId>
<name>Spring Boot Atmosphere Sample</name>
<description>Spring Boot Atmosphere Sample</description>
<url>http://projects.spring.io/spring-boot/</url>
<organization>
<name>Pivotal Software, Inc.</name>
<url>http://www.spring.io</url>
</organization>
<properties>
<main.basedir>${basedir}/../..</main.basedir>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>atmosphere-javascript</artifactId>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
当我尝试使用 mvn compile 进行编译时,我收到以下错误的构建日志:
[INFO] Scanning for projects...
Downloading from spring-snapshots: http://repo.spring.io/snapshot/org/springframework/spring-framework-bom/4.3.2.BUILD-SNAPSHOT/maven-metadata.xml
[WARNING] Could not transfer metadata org.springframework:spring-framework-bom:4.3.2.BUILD-SNAPSHOT/maven-metadata.xml from/to spring-snapshots (http://repo.spring.io/snapshot): Authorization failed for http://repo.spring.io/snapshot/org/springframework/spring-framework-bom/4.3.2.BUILD-SNAPSHOT/maven-metadata.xml 403 Forbidden
Downloading from spring-snapshots: http://repo.spring.io/snapshot/org/springframework/spring-framework-bom/4.3.2.BUILD-SNAPSHOT/spring-framework-bom-4.3.2.BUILD-SNAPSHOT.pom
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] Non-resolvable import POM: Could not transfer artifact org.springframework:spring-framework-bom:pom:4.3.2.BUILD-SNAPSHOT from/to spring-snapshots (http://repo.spring.io/snapshot): Authorization failed for http://repo.spring.io/snapshot/org/springframework/spring-framework-bom/4.3.2.BUILD-SNAPSHOT/spring-framework-bom-4.3.2.BUILD-SNAPSHOT.pom 403 Forbidden @ org.springframework.boot:spring-boot-dependencies:1.4.0.BUILD-SNAPSHOT, C:\JenkinsTryOut\jenkins2-course-spring-boot\spring-boot-dependencies\pom.xml, line 2058, column 16
[ERROR] 'dependencies.dependency.version' for org.springframework:spring-websocket:jar is missing. @ line 46, column 15
@
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR] The project org.springframework.boot:spring-boot-sample-atmosphere:1.4.0.BUILD-SNAPSHOT (C:\JenkinsTryOut\jenkins2-course-spring-boot\spring-boot-samples\spring-boot-sample-atmosphere\pom.xml) has 2 errors
[ERROR] Non-resolvable import POM: Could not transfer artifact org.springframework:spring-framework-bom:pom:4.3.2.BUILD-SNAPSHOT from/to spring-snapshots (http://repo.spring.io/snapshot): Authorization failed for http://repo.spring.io/snapshot/org/springframework/spring-framework-bom/4.3.2.BUILD-SNAPSHOT/spring-framework-bom-4.3.2.BUILD-SNAPSHOT.pom 403 Forbidden @ org.springframework.boot:spring-boot-dependencies:1.4.0.BUILD-SNAPSHOT, C:\JenkinsTryOut\jenkins2-course-spring-boot\spring-boot-dependencies\pom.xml, line 2058, column 16 -> [Help 2]
[ERROR] 'dependencies.dependency.version' for org.springframework:spring-websocket:jar is missing. @ line 46, column 15
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
java版本是:
java version "11.0.1" 2018-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)
Maven 版本是:
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\ProgramData\chocolatey\lib\maven\apache-maven-3.6.3\bin\..
Java version: 11.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-11.0.1
Default locale: en_GB, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
这似乎是不阅读评论和@khmarbaise 建议的混合体。
在 pom.xml 中它说:
<parent>
<!-- Your own application should inherit from spring-boot-starter-parent -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-samples</artifactId>
<version>1.4.0.BUILD-SNAPSHOT</version>
</parent>
因此,当我按照评论建议将 artifactId 更改为 spring-boot-starter-parent 并将版本更新为 2.2.4.RELEASE 时,@khmarbaise 建议我得到以下 pom.xml 的父元素:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
然后用mvn compile
我就可以成功编译了。
我也开始看同样的课程,并发出同样的问题。
你给出的答案只是部分正确。 将版本更改为2.2.4.RELEASE
将导致您在尝试运行mvn test
时遇到许多错误,因为在以后的版本中一些类被抛出(例如org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration
)。 最好的解决方案是将 artifactId 更改为spring-boot-starter-parent
如您所说并将版本更改为1.4.0.RELEASE
并且您将能够运行所有 maven 命令而不会出错。 所以,让我们说,完整的答案是:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
多个 pom.xml 文件引用了不再可用的库的 BUILD-SNAPSHOT 版本。 以下步骤对我有用:-
修复程序在下面的分叉存储库中可用。 也许你可以直接使用它。 https://github.com/PonsonT/jenkins2-course-spring-boot
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.