Stash tutorial not working

Annie March 24, 2013

I've been trying to get this stash tutorial wokring: https://developer.atlassian.com/stash/docs/latest/tutorials-and-examples/controlling-when-pull-requests-can-be-merged.html

However, I am getting the following maven errors:

Description	Resource	Path	Location	Type
Project build error: 'dependencies.dependency.version' for com.atlassian.stash:stash-api:jar is missing.	pom.xml	/is-admin-merge-check	line 1	Maven Problem
Project build error: 'dependencies.dependency.version' for com.atlassian.stash:stash-page-objects:jar is missing.	pom.xml	/is-admin-merge-check	line 1	Maven Problem
Project build error: 'dependencies.dependency.version' for com.atlassian.stash:stash-spi:jar is missing.	pom.xml	/is-admin-merge-check	line 1	Maven Problem
Project build error: Non-resolvable import POM: Failure to find com.atlassian.stash:stash-parent:pom:2.2.0 in http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced	pom.xml	/is-admin-merge-check	line 1	Maven Problem

The POM file looks like this:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>is-admin-merge-check</artifactId>
    <version>1.0-SNAPSHOT</version>

    <organization>
        <name>Example Company</name>
        <url>http://www.example.com/</url>
    </organization>

    <name>is-admin-merge-check</name>
    <description>This is the com.mycompany:is-admin-merge-check plugin for Atlassian Stash.</description>
    <packaging>atlassian-plugin</packaging>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.atlassian.stash</groupId>
                <artifactId>stash-parent</artifactId>
                <version>${stash.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.atlassian.stash</groupId>
            <artifactId>stash-api</artifactId>
            <scope>provided</scope>
        </dependency>
       <dependency>
	        <groupId>com.atlassian.stash</groupId>
	        <artifactId>stash-spi</artifactId>
	        <scope>provided</scope>
	    </dependency>
        <dependency>
            <groupId>com.atlassian.stash</groupId>
            <artifactId>stash-page-objects</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </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>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>maven-stash-plugin</artifactId>
                <version>${amps.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <products>
                        <product>
                            <id>stash</id>
                            <instanceId>stash</instanceId>
                            <version>${stash.version}</version>
                            <dataVersion>${stash.data.version}</dataVersion>
                        </product>  
                    </products>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
    <properties>
        <stash.version>2.2.0</stash.version>
        <stash.data.version>2.2.0</stash.data.version>
        <amps.version>4.1.6</amps.version>
        <plugin.testrunner.version>1.1.1</plugin.testrunner.version>
    </properties>
    
</project>

This POM file was generated by the atlas-create-stash-plugin SDK command, as specified in the tutorial.

I thought i would try removing the dependencyManagement section and putting the <version>${stash.version}</version> on each dependency that needed it, but I get the following errors:

Description	Resource	Path	Location	Type
Missing artifact com.atlassian.stash:stash-api:jar:2.2.0:provided	pom.xml	/is-admin-merge-check	line 1	Maven Problem
Missing artifact com.atlassian.stash:stash-page-objects:jar:2.2.0:provided	pom.xml	/is-admin-merge-check	line 1	Maven Problem
Missing artifact com.atlassian.stash:stash-spi:jar:2.2.0:provided	pom.xml	/is-admin-merge-check	line 1	Maven Problem

Does anyone know what might be wrong here?

Edit

The original failure (before I removed the servlet-api dependency) was this:

[ERROR]   The project com.mycompany:is-admin-merge-check:1.0-SNAPSHOT (/Users/me/repos/stash-example-plugin/is-admin-merge-check/pom.xml) has 5 errors
[ERROR]     Non-resolvable import POM: Failure to find com.atlassian.stash:stash-parent:pom:2.2.0 in http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced @ line 23, column 25 -&gt; [Help 2]
[ERROR]     'dependencies.dependency.version' for com.atlassian.stash:stash-api:jar is missing. @ line 34, column 21
[ERROR]     'dependencies.dependency.version' for com.atlassian.stash:stash-spi:jar is missing. @ line 39, column 21
[ERROR]     'dependencies.dependency.version' for com.atlassian.stash:stash-page-objects:jar is missing. @ line 44, column 21
[ERROR]     'dependencies.dependency.version' for javax.servlet:servlet-api:jar is missing. @ line 49, column 21

1 answer

1 accepted

1 vote
Answer accepted
cofarrell
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 24, 2013

Hi Annie,

It looks like you're just using the default maven repositories, which won't include the required Stash artifacts.

https://developer.atlassian.com/display/DOCS/Atlassian+Maven+Repositories

My understanding is that using the Atlassian SDK atlas commands should correctly resolve the dependencies from Atlassian's maven repositories. You should be able to use atlas-mvn and the like which will use the correct settings.xml.

I hope this helps.

Charles

Annie March 24, 2013

Ooh, it looks like I've been using my own previously installed version of maven to do the builds, rather than the one included in the /usr/share/atlassian-plugin-sdk-4.1.6/apache-maven SDK folder.

Might be a good idea to add this requirement to this prerequisites page?

https://developer.atlassian.com/display/DOCS/Set+up+the+SDK+Prerequisites+for+Linux+or+Mac

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events