mavenjirajira-pluginatlassian-plugin-sdk

"A required class was missing while executing org.apache.maven.plugins:maven-help-plugin:3.4.0:effective-pom" when tyrying to update Jira plugin


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.ja

va: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:

Can someone point out my error here?


Solution

  • It turns out that there was a mismatch between the AMPS version I specified and the one that was actually installed.

    When I ran atlas-version, I got:

    ATLAS Version:    8.2.7
    ATLAS Home:       C:\Applications\Atlassian\atlassian-plugin-sdk-8.2.7
    ATLAS Scripts:    C:\Applications\Atlassian\atlassian-plugin-sdk-8.2.7\bin
    ATLAS Maven Home: C:\Applications\Atlassian\atlassian-plugin-sdk-8.2.7\apache-maven-3.5.4
    AMPS Version:     8.1.2
    --------
    

    This is in spite of having installed the (supposedly latest) SDK from the official download page.

    When I changed the AMPS version to 8.1.2, my build worked fine again.

    I later realized that there is, in fact, a newer version of the SDK available. However, if you try to download the Windows SDK from the official download page, you won't get the latest version (even though they claim that it's the latest) - as of December 20, 2024, you actually get 8.1.2 instead of 9.1.1 (which is the latest version).

    What you should do instead:

    1. Go to https://maven.artifacts.atlassian.com/com/atlassian/amps/atlassian-plugin-sdk/ and download the ZIP file of the latest SDK version
    2. Unzip the entire folder to C:\Applications\Atlassian\
    3. Edit your Windows Path Environment variable to include C:\Applications\Atlassian\atlassian-plugin-sdk-9.1.1\bin (or whichever version is current whenever you read this).

    After that, you should be able to update your AMPS version in your pom.xml.