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 -> [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
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.