Maven无法找到com.spotify:dockerfile-maven-extension:

这可能是一个但是,但是可能只是我,我错过了一步,或者什么都不懂。


我正在尝试在Maven项目中设置专用的子模块,唯一的任务是生成docker映像(这是一个用于玩耍的测试项目,但可能会将结构用于其他用途)。但是每次尝试构建子模块时,都会出现错误“无法解析com.spotify:dockerfile-maven-extension:1.4.3的插件描述符”。


我试图用各种大小的锤子砸碎行家,但是我似乎无法破解。我的确发现执行mvn deploy和之间有区别mvn dockerfile:build。如果执行mvn deploy,mvn dockerfile:build则会出现上述错误,但是执行完成没有任何问题,并按预期生成了docker映像。我也尝试过从源代码构建扩展,但是如果集成测试失败。手动运行某些测试(尝试了高级测试和多模块测试)会导致与我在自己的项目中看到的相同的错误。


如何繁殖

站在子模块中,执行 mvn deploy


父pom:


<?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.example</groupId>

    <artifactId>dockertest</artifactId>

    <packaging>pom</packaging>

    <version>1.0-SNAPSHOT</version>


    <modules>

        <module>serverimage</module>

    </modules>


    <build>

        <extensions>

            <extension>

                <groupId>com.spotify</groupId>

                <artifactId>dockerfile-maven-extension</artifactId>

                <version>1.4.3</version>

            </extension>

        </extensions>

    </build>

</project>

你能指望什么

我希望mvn deploy并且mvn dockerfile:build都会产生docker映像

发生了什么事

如果我执行mvn dockerfile:build它,将生成图像而没有任何问题。如果我mvn deploy改为执行,它将崩溃并显示错误消息:“无法解析com.spotify:dockerfile-maven-extension:1.4.3(C:\ Users \ mcso.m2 \ repository \ com \ spotify \ dockerfile- maven-extension \ 1.4.3 \ dockerfile-maven-extension-1.4.3.jar):在META-INF / maven / plugin.xml-> [Help 1]中找不到插件描述符。


米脂
浏览 1302回答 1
1回答

慕姐8265434

dockerfile-maven-extension 不是maven插件,而是maven扩展。因此,您不得在的<build><plugins>部分中使用它pom.xml,而应在其中<build><extensions>使用:<build>&nbsp; <extensions>&nbsp; &nbsp; <extension>&nbsp; &nbsp; &nbsp; <groupId>com.spotify</groupId>&nbsp; &nbsp; &nbsp; <artifactId>dockerfile-maven-extension</artifactId>&nbsp; &nbsp; &nbsp; <version>${version}</version>&nbsp; &nbsp; </extension>&nbsp; </extensions></build>由于您已经在父pom中执行了此操作,因此您应该能够<plugin>从子pom中删除相应的元素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java