异常日志输出如下:
[ERROR] No plugin found for prefix 'docker' in the current project and in the plugin groups [org.apache.tomcat.maven, org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/root/.m2/repository), nexus3 (http://xx.xx.0.xx:8089/localMaven/repository/maven-public/)] -> [Help 1]
[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/NoPluginFoundForPrefixException
Build step 'Invoke top-level Maven targets' marked build as failure
Finished: FAILURE
问题场景:
1. 父工程依赖: spring-boot-starter-parent 2.1.4.RELEASE
2. 编译插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
3. Docker 编译插件
<!-- docker-maven 插件,用于打包docker镜像 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<!--镜像名称-->
<imageName>${project.artifactId}</imageName>
<!-- dockerfile目录-->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<buildArgs>
<JAR_FILE>${project.artifactId}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
原因:
docker-maven-plugin的最新版本 与 spring-boot-maven-plugin的2.1.x版本不兼容所致
解决办法:
将 spring-boot-maven-plugin 的版本号不使用默认继承的父工程版本号,而修改为 <version>1.3.5.RELEASE</version>
或
将 docker-maven-plugin 的版本号修改为 <version>1.2.0</version>