Error injecting: org.apache.maven.artifact.installer.DefaultArtifactInstaller com.google.inject.ProvisionException: Unable to provision

1、这个错误下还有两个子错误提示:1)Error injecting: private org.eclipse.aether.spi.log.Logger org.apache.maven.repository.internal.DefaultVersionRangeResolver.logger;2)java.lang.IllegalArgumentException: Can not set org.eclipse.aether.spi.log.Logger field org.apache.maven.repository.internal.DefaultVersionRangeResolver.logger to org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory;

2、一直追踪到下图这里也没看出有什么问题,不知为什么Google的依赖注入框架【Guice】总是提示注入的日志记录器类型错误。

3、经过多次尝试发现,只有按照先执行插件【dockerfile-maven-plugin】再执行插件【maven-install-plugin】顺序时才会出现此错误,只要两者不同时执行或者最后执行【dockerfile-maven-plugin】则不会有错。

4、为了使两个插件都能执行,则必须先执行插件【maven-install-plugin】后执行插件【dockerfile-maven-plugin】。根据文章【maven pom进阶教程 - phase与goal - wzj_whut的个人空间 - OSCHINA】介绍,对插件【dockerfile-maven-plugin】采取如下设置即可,意为先通过对默认execution【default】的【phase】属性设置为【none】禁用掉,然后再重建一个新的execution【fater-deploy】。这样在【deploy】阶段,当所有默认的execution都执行完成后,最后执行手动添加的execution【fater-deploy】,从而完整无误的执行完所有插件。

原文地址:https://www.cnblogs.com/StarkBrothers/p/11986666.html