【问题标题】:Maven: No plugin found for prefix 'dockerfile'Maven:找不到前缀“dockerfile”的插件
【发布时间】:2019-11-25 11:14:15
【问题描述】:

按照一些 maven docker 示例,想出了以下代码,运行 mvn 包 dockerfile:build 但得到这些错误: [错误] 在当前项目和存储库中可用的插件组 [org.apache.maven.plugins, org.codehaus.mojo] 中找不到前缀“dockerfile”的插件...

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompnay.learning</groupId>
    <artifactId>my-app-base-pom</artifactId>
    <version>0.0.1</version>


    <properties>
        <dockerfile.version>0.0.1</dockerfile.version>
        <docker.image.prefix>AdminService</docker.image.prefix>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>0.0.1</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <goals>
                            <goal>build</goal>
                        </goals>
                        <configuration>
                            <repository>docker.io/kkapelon/docker-maven-comparsion</repository>
                            <tag>projectVersion</tag>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

请问我应该从这里去哪里?

【问题讨论】:

    标签: maven docker


    【解决方案1】:

    您很可能会收到错误,因为缺少插件(版本 0.0.1)。检查任何maven 警告

    [WARNING] The POM for com.spotify:dockerfile-maven-plugin:jar:0.0.1 is missing, no dependency information available
    [WARNING] Failed to retrieve plugin descriptor for ...
    

    由于无法检索插件描述符,maven 不知道有一个与插件关联的 dockerfile 前缀配置,因此出现错误“No plugin found for prefix”。此配置存储在 maven 存储库上的插件路径中

    要使用的常规工件 ID 格式是:

    • maven-${prefix}-plugin - 由 阿帕奇 Maven 团队本身(你不能使用这个命名模式为你的 插件,请参阅此说明了解更多信息)
    • ${prefix}-maven-plugin 用于其他来源的插件。

    如果你的插件的 artifactId 符合这个 模式,Maven 会自动将您的插件映射到存储在插件的 groupId 路径中的元数据中的正确前缀 存储库。

    更多关于插件前缀解析here

    对于版本1.4.0,例如,描述符(即pom文件) 有一个配置部分:

    <configuration>
        <goalPrefix>dockerfile</goalPrefix>
        <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> 
    </configuration> 
    

    将版本更改为更新的版本 (>1.2.0) 应该可以修复错误。

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.0</version>
                ...
            </plugin>
    

    运行:

    mvn package dockerfile:build
    

    【讨论】:

    • 如果我想运行集成测试,有没有办法使用 spotify 呢?
    • 如果这是您想要的,您不能使用 spotify 运行容器。我会为此推荐 fabric8 插件。
    • 另一个相关的问题,如果你知道stackoverflow.com/questions/57105061/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 2011-09-13
    • 1970-01-01
    • 2016-11-25
    • 2014-01-31
    • 2014-08-10
    • 2017-06-02
    相关资源
    最近更新 更多