How to handle dependencies for jira plugins (in IntelliJ IDEA)?

I developed a jira plugin in eclipse. It’s working so far. Now I wanted to switch to IntelliJ IDEA. There I activated the plugin to handle the dependencies with Maven.

For some imports in the java files IntelliJ is complaining about missing dependencies. For example org.slf4j.Logger or com.atlassian.plugin.PluginParseException or javax.servlet.http.HttpServlet.

In an example project I saw that they added these lines for example in the pom.xml:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
    </dependency>
    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-webfragment-api</artifactId>
        <scope>provided</scope>
    </dependency>

This doesn’t work in IntelliJ because the IDE needs the version of the dependencies. Now for me is the question how to know which version is provided by Jira 7.3.3 for example. If I search for javax.servlet in IntelliJ then there are for example version 2.5 or 3.0.1. And for slf4j I don’t know if slf4j-simple is the right one because the maven of IntelliJ cannot find it.

In eclipse I could use atlas-mvn eclipse:eclipse which added all dependencies so that eclipse didn’t complained about missing dependencies.

So my questions are:

  • How do I know which versions are provided by the target Jira Version?
  • How you handle in general these dependencies in IntelliJ?
1 Like

This is not a direct answer to this questions.
But - as I was looking for the same info - I found this page: https://developer.atlassian.com/server/confluence/preparing-for-confluence-5-9/
Which tells me that confluence (which I am using) has at least servlet version 3.0.1. So I went with that.

I added all the jars in target/testlibs/provided as a library in idea module settings. After that all my classes complie. I code in ide and build on cmd line with altas-mvn. Hope this workaround helps. Still keen to know right way to set it up with maven

You need to change the maven paths in intellij to the paths of the atlassian sdk, the built in maven cant resolve the dependencies. Use atlas-version to get the correct path info