执行atlas-run时出现InputLocation$StringFormatter类缺失错误
执行
atlas-run时出现org.apache.maven.model.InputLocation$StringFormatter类缺失错误 环境版本信息
- Atlassian SDK 8.2.7
- AMPS 8.1.2
- Apache Maven 3.5.4
- JDK 17
错误信息
执行atlas-run命令时触发如下错误:
[ERROR] Failed to execute goal com.atlassian.maven.plugins:amps-dispatcher-maven-plugin:8.1.2:run (default-cli) on project Excellentable: Unable to execute mojo: Execution null of goal org.apache.maven.plugins:maven-help-plugin:3.4.0:effective-pom failed: A required class was missing while executing org.apache.maven.plugins:maven-help-plugin:3.4.0:effective-pom: org/apache/maven/model/InputLocation$StringFormatter
完整堆栈信息
[WARNING] Error injecting: org.apache.maven.plugins.help.EffectivePomMojo java.lang.NoClassDefFoundError: org/apache/maven/model/InputLocation$StringFormatter at java.lang.Class.getDeclaredConstructors0 (Native Method) at java.lang.Class.privateGetDeclaredConstructors (Class.java:3373) at java.lang.Class.getDeclaredConstructors (Class.java:2555) at com.google.inject.spi.InjectionPoint.forConstructorOf (InjectionPoint.java:245) at com.google.inject.internal.ConstructorBindingImpl.create (ConstructorBindingImpl.java:115) at com.google.inject.internal.InjectorImpl.createUninitializedBinding (InjectorImpl.java:706) at com.google.inject.internal.InjectorImpl.createJustInTimeBinding (InjectorImpl.java:929) at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive (InjectorImpl.java:852) at com.google.inject.internal.InjectorImpl.getJustInTimeBinding (InjectorImpl.java:291) at com.google.inject.internal.InjectorImpl.getBindingOrThrow (InjectorImpl.java:222) at com.google.inject.internal.InjectorImpl.getProviderOrThrow (InjectorImpl.java:1040) at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1071) at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1034) at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1086) 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) at com.google.inject.internal.ProvisionListenerStackCallback.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:519) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124) at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:120) at com.atlassian.maven.plugins.amps.util.MojoExecutorWrapperImpl.execute (MojoExecutorWrapperImpl.java:28) at com.atlassian.maven.plugins.amps.util.MojoExecutorWrapperImpl.executeWithMergedConfig (MojoExecutorWrapperImpl.java:39) at com.atlassian.maven.plugins.amps.MavenGoals.generateEffectivePom (MavenGoals.java:1159) at com.atlassian.maven.plugins.amps.product.AbstractWebappProductHandler.addOverridesFromProductPom (AbstractWebappProductHandler.java:191) at com.atlassian.maven.plugins.amps.product.AbstractProductHandler.start (AbstractProductHandler.java:253) at com.atlassian.maven.plugins.amps.RunMojo.startProduct (RunMojo.java:160) at com.atlassian.maven.plugins.amps.RunMojo.startProducts (RunMojo.java:128) at com.atlassian.maven.plugins.amps.RunMojo.doExecute (RunMojo.java:96) at com.atlassian.maven.plugins.amps.AbstractProductHandlerMojo.execute (AbstractProductHandlerMojo.java:521) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo (MojoExecutor.java:119) at com.atlassian.maven.plugins.amps.util.MojoUtils.execute (MojoUtils.java:36) at com.atlassian.maven.plugins.amps.util.MojoUtils.executeWithMergedConfig (MojoUtils.java:66) at com.atlassian.maven.plugins.ampsdispatcher.AbstractAmpsDispatcherMojo.execute (AbstractAmpsDispatcherMojo.java:56) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77) at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:568) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Caused by: java.lang.ClassNotFoundException: org.apache.maven.model.InputLocation$StringFormatter at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50) at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247) at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239) ... 67 more
已尝试操作
- 执行
mvn clean - 执行
mvn clean install -U
以上操作均未解决问题。
解决方案
方案1:升级Maven版本
org.apache.maven.model.InputLocation$StringFormatter类仅在Maven 3.6.0及以上版本的maven-model模块中存在,当前使用的Maven 3.5.4不包含该类,与maven-help-plugin 3.4.0存在版本冲突。
- 下载Maven 3.6.0及以上版本(推荐3.6.3)
- 更新环境变量,确保新Maven版本优先生效
- 重新执行
atlas-run
方案2:指定兼容的maven-help-plugin版本
在项目pom.xml的<build>节点下添加<pluginManagement>配置,锁定maven-help-plugin为与Maven 3.5.4兼容的3.2.0版本:
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-help-plugin</artifactId> <version>3.2.0</version> </plugin> </plugins> </pluginManagement> </build>
配置完成后,执行mvn clean,再重新运行atlas-run
方案3:切换JDK版本
Atlassian SDK 8.2.7官方推荐的JDK版本为8或11,JDK 17可能存在兼容性问题:
- 安装JDK 11(或JDK 8)
- 将环境变量
JAVA_HOME指向新安装的JDK - 重新执行
atlas-run
内容的提问来源于stack exchange,提问作者Deepak Pandey
相关产品推荐
相关产品推荐

