繁体   English   中英

maven 编译错误 - [ERROR] 不可解析的导入 POM:无法传输工件

[英]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 版本。 以下步骤对我有用:-

  1. 创建您的 github 帐户
  2. Fork 仓库https://github.com/g0t4/jenkins2-course-spring-boot
  3. 将分叉存储库克隆到本地目录(比如 /user/ponson/jenkins2-course-spring-boot)
  4. 打开 bash 终端并将当前目录更改为本地 git 目录(/user/ponson/jenkins2-course-spring-boot)
  5. 运行以下命令以在 pom.xml 文件 find 中将出现的 '1.4.0.BUILD-SNAPSHOT' 替换为 '1.4.0.RELEASE'。 -name pom.xml | xargs sed -i 's/1.4.0.BUILD-SNAPSHOT/1.4.0.RELEASE/g'
  6. 打开 spring-boot-dependencies/pom.xml 进行编辑并将 '4.3.2.BUILD-SNAPSHOT' 替换为 '4.3.2.RELEASE'
  7. 使用命令“git add”将您的更改暂存到本地存储库。
  8. 提交您的更改(git commit -m '<>')
  9. 将更改推送到远程 git 存储库(git push origin)。 随身携带您的 github 凭据并在出现提示时输入。

修复程序在下面的分叉存储库中可用。 也许你可以直接使用它。 https://github.com/PonsonT/jenkins2-course-spring-boot

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM