Error injecting: org.springframework.boot.maven.RepackageMojojava.lang.TypeNotPresentException问题解决

近期拿到一个新项目,本想编译一下启动看看,结果。。。喔嚯。。。

[WARNING] Error injecting: org.springframework.boot.maven.RepackageMojo
java.lang.TypeNotPresentException: Type org.springframework.boot.maven.RepackageMojo not present
    at org.eclipse.sisu.space.URLClassSpace.loadClass (URLClassSpace.java:147)
    at org.eclipse.sisu.space.NamedClass.load (NamedClass.java:46)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:127)
ovisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)
    at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:520)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)
g.apache.maven.lifecycle.internal.MojoExecutor

先说解决方案(两个人选一个就可以):

解决一:注释本地的阿里镜像

 解决二:maven-surefire-plugin指定版本和SpringBoot版本一致

原因是我们之前开发小伙伴没有关注版本号的问题,项目如果有spring-boot-starter-parent依赖,那问题是不存在的,但是我们项目有自己私有的parent,pom中没有添加spring-boot-maven-plugin版本约束,那项目在没有指定版本的情况下就会拉取setting配置的镜像中最新的版本(恰在此时阿里发布一个最新的镜像有一个特殊类就会报TypeNotPresentException)。

 

总结:

严格规范自己的代码,否则.....

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 这个错误是由于在Spring Boot项目中使用了Maven的repackage插件,但是插件配置不正确或者环境不兼容导致的。建议检查一下Maven的版本是否符合要求,以及repackage插件的配置是否正确。如果还是无法解决问题,可以尝试升级或降级插件版本,或者使用其他打包方式。 ### 回答2: 这个错误出现一般是因为项目中的某些依赖与Spring Boot的版本不兼容。 当运行Maven命令时,Maven会使用Spring Boot Maven插件来重新打包项目,并构建可执行的jar文件或war文件。在这个过程中,插件会根据pom.xml文件中定义的Spring Boot版本来进行构建。 然而,如果项目中的某些依赖与这个版本不兼容,就容易出现错误。这时,我们可以尝试以下几种解决方法: 1. 更新Spring Boot版本:可以尝试升级Spring Boot版本到最新的稳定版本,或者调整版本到与项目中的依赖兼容的版本。 2. 排查依赖:通过排查依赖,确定哪些依赖与Spring Boot版本不兼容,然后可以删除或替换这些依赖。 3. 检查pom.xml:确保pom.xml文件中的配置正确,包括Spring Boot的版本和依赖的版本。 4. 使用原生Maven插件:如果仍然无法解决问题,可以尝试使用原生的Maven插件进行重新打包,以避免Spring Boot Maven插件的版本兼容性问题。 总之,要解决这个错误,我们需要仔细检查依赖、版本和配置,确保它们之间的兼容性。 ### 回答3: 这个错误是由于Maven的版本导致的,Maven在处理Spring Boot项目的时候会出现这个错误。Maven中有两个可以使用的插件分别是maven-resources-plugin和maven-compiler-plugin,这两个插件会被Spring Boot的插件repackage限定使用,但是在一些Maven的版本中,这两个插件被忽略掉了,导致了这个错误。 解决这个问题的方法有两个。首先,你可以升级Maven版本,尝试升级到最新版本,这样通常会修复很多问题。其次,你可以在pom.xml文件中手动指定使用的插件,并且排除掉不需要的插件。 具体的做法是,在pom.xml文件中添加以下依赖及排除代码: ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>exec</classifier> <mainClass>com.example.MainClass</mainClass> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.2</version> </dependency> </dependencies> <exclusions> <exclusion> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> </exclusion> <exclusion> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </exclusion> </exclusions> </plugin> </plugins> </build> ``` 这样就可以解决这个错误了。需要注意的是,这个方法只在Maven 3.6.0及以上版本中才可用,如果你的Maven版本过低,还需要升级Maven版本。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值