I recently updated my Jira plugin to version 9. However, I am now getting the following error message when I try to run atlas-debug
:
[ERROR] Failed to execute goal com.atlassian.maven.plugins:amps-dispatcher-maven-plugin:8.1.2:debug (default-cli) on project MyProject: 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
I'm slightly puzzled by the reference to amps-dispatcher-mavin-plugin:8.1.2
, given that I specifically updated the AMPS version to 8.16.0 (as shown below). Indeed, I get the following message in the console:
[INFO] Project defined AMPS version detected: "8.1.2"
I'm very confused by this because I definitely updated the AMPS version to 8.16.0.
In the build messages in my terminal, I see some references to 8.16.0, such as:
[INFO] --- jira-maven-plugin:8.16.0:test-jar (default-test-jar) @ test2 ---
However, I still see some references to 8.1.2 (in addition to what I mentioned above), such as:
[INFO] <<< amps-dispatcher-maven-plugin:8.1.2:debug (default-cli) < package @ test2 <<<
I tried using atlas-create-jira-plugin
to create a new app entirely, and I just edited the Jira version and the AMPS version in the pom.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion><groupId>com.test.test2</groupId><artifactId>test2</artifactId><version>1.0.0-SNAPSHOT</version><organization><name>Example Company</name><url>http://www.example.com/</url></organization><name>test2</name><description>This is the com.test.test2:test2 plugin for Atlassian JIRA.</description><packaging>atlassian-plugin</packaging><dependencies><dependency><groupId>com.atlassian.jira</groupId><artifactId>jira-api</artifactId><version>${jira.version}</version><scope>provided</scope></dependency><!-- Add dependency on jira-core if you want access to JIRA implementation classes as well as the sanctioned API. --><!-- This is not normally recommended, but may be required eg when migrating a plugin originally developed against JIRA 4.x --><!--<dependency><groupId>com.atlassian.jira</groupId><artifactId>jira-core</artifactId><version>${jira.version}</version><scope>provided</scope></dependency> --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version><scope>test</scope></dependency><dependency><groupId>com.atlassian.plugin</groupId><artifactId>atlassian-spring-scanner-annotation</artifactId><version>${atlassian.spring.scanner.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><version>1</version><scope>provided</scope></dependency><!-- WIRED TEST RUNNER DEPENDENCIES --><dependency><groupId>com.atlassian.plugins</groupId><artifactId>atlassian-plugins-osgi-testrunner</artifactId><version>${plugin.testrunner.version}</version><scope>test</scope></dependency><dependency><groupId>javax.ws.rs</groupId><artifactId>jsr311-api</artifactId><version>1.1.1</version><scope>provided</scope></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.2.2-atlassian-1</version></dependency><!-- Uncomment to use TestKit in your project. Details at https://bitbucket.org/atlassian/jira-testkit --><!-- You can read more about TestKit at https://developer.atlassian.com/display/JIRADEV/Plugin+Tutorial+-+Smarter+integration+testing+with+TestKit --><!--<dependency><groupId>com.atlassian.jira.tests</groupId><artifactId>jira-testkit-client</artifactId><version>${testkit.version}</version><scope>test</scope></dependency> --></dependencies><build><plugins><plugin><groupId>com.atlassian.maven.plugins</groupId><artifactId>jira-maven-plugin</artifactId><version>${amps.version}</version><extensions>true</extensions><configuration><!-- CHANGE #1 HERE --><banningExcludes><exclude>com.google.code.gson:gson</exclude></banningExcludes><productVersion>${jira.version}</productVersion><productDataVersion>${jira.version}</productDataVersion><!-- Uncomment to install TestKit backdoor in JIRA. --><!--<pluginArtifacts><pluginArtifact><groupId>com.atlassian.jira.tests</groupId><artifactId>jira-testkit-plugin</artifactId><version>${testkit.version}</version></pluginArtifact></pluginArtifacts> --><enableQuickReload>true</enableQuickReload><!-- See here for an explanation of default instructions: --><!-- https://developer.atlassian.com/docs/advanced-topics/configuration-of-instructions-in-atlassian-plugins --><instructions><Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key><!-- Add package to export here --><Export-Package> com.test.test2.api,</Export-Package><!-- Add package import here --><Import-Package> org.springframework.osgi.*;resolution:="optional", org.eclipse.gemini.blueprint.*;resolution:="optional", *</Import-Package><!-- Ensure plugin is spring powered --><Spring-Context>*</Spring-Context></instructions></configuration></plugin><plugin><groupId>com.atlassian.plugin</groupId><artifactId>atlassian-spring-scanner-maven-plugin</artifactId><version>${atlassian.spring.scanner.version}</version><executions><execution><goals><goal>atlassian-spring-scanner</goal></goals><phase>process-classes</phase></execution></executions><configuration><verbose>false</verbose></configuration></plugin></plugins></build><properties><!-- CHANGE #2 HERE --><!-- This is what it was originally: --><!-- <jira.version>7.13.0</jira.version><amps.version>8.1.2</amps.version>--><!-- This is what I changed it to --><jira.version>9.12.2</jira.version><amps.version>8.16.0</amps.version><!-- Everything else is exactly the way it was created by atlas-create-jira-plugin --><plugin.testrunner.version>2.0.2</plugin.testrunner.version><atlassian.spring.scanner.version>2.1.7</atlassian.spring.scanner.version><!-- This property ensures consistency between the key in atlassian-plugin.xml and the OSGi bundle's key. --><atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key><!-- TestKit version 6.x for JIRA 6.x --><testkit.version>6.3.11</testkit.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties>
The stack trace is as follows:
[INFO] Copying atlassian-plugins-osgi-testrunner-bundle-2.0.2.jar to C:\MinReprex\test2\target\jira\webapp\WEB-INF\atlassian-bundled-plugins\atlassian-plugins-osgi-testrunner-bundle-2.0.2.jar [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:2671) at java.lang.Class.getDeclaredConstructors (Class.java:2020) 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:1174) 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 sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) 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) at java.lang.Class.getDeclaredConstructors0 (Native Method) at java.lang.Class.privateGetDeclaredConstructors (Class.java:2671) at java.lang.Class.getDeclaredConstructors (Class.java:2020) 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:1174) 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 sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) 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)
What I tried:
- Adding maven-resources-plugin as suggested here. Unfortunately, it didn't make any difference.
- Deleting the
~/.m2/repository/org/apache/maven
folder, as suggested here. Unfortunately, that didn't help either. - Running
mvn clean
. (This also had no effect). - Trying some of the suggestions from this post to update my dependencies. I tried with
mvn dependency:resolve -U
andmvn clean install -U
. - In my original project, I ran
mvn dependency:tree -Dverbose
. Unfortunately, I don't have space to include this without exceeding the character limit for the question, but nothing "jumped out" at me as especially explanatory.
Can someone point out my error here?