Skip to content

Instantly share code, notes, and snippets.

@clouless

clouless/pom.xml Secret

Last active February 12, 2024 08:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save clouless/145a21b96f0e2a5ef6a8f642322d2018 to your computer and use it in GitHub Desktop.
Save clouless/145a21b96f0e2a5ef6a8f642322d2018 to your computer and use it in GitHub Desktop.
Confluence 8.8 pom.xml with Macros and REST API
<?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>CENSORED</groupId>
<artifactId>aAPPNAME</artifactId>
<version>5.0.0</version>
<organization>
<name>x</name>
<url>https://x.foo</url>
</organization>
<name>x</name>
<description>x</description>
<packaging>atlassian-plugin</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<!--<version>4.12</version>-->
<!-- dony by confluence-plugins-platform-pom -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.atlassian.confluence</groupId>
<artifactId>confluence</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.confluence</groupId>
<artifactId>confluence-java-api</artifactId>
<version>${confluence.version}</version>
<scope>provided</scope>
</dependency>
<!-- NEW FIXED SPRING SCANNER v2 START -->
<dependency>
<groupId>com.atlassian.plugin</groupId>
<artifactId>atlassian-spring-scanner-annotation</artifactId>
<version>${atlassian.spring.scanner.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.plugins</groupId>
<artifactId>atlassian-plugins-osgi</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<scope>provided</scope>
</dependency>
<!-- NEW FIXED SPRING SCANNER v2 END -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<!-- done by jira-plugins-platform-pom -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.plugins.rest</groupId>
<artifactId>atlassian-rest-common</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.sal</groupId>
<artifactId>sal-api</artifactId>
<scope>provided</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.8.9</version>
<scope>compile</scope> <!-- SINCE 2021-12-08 we bundle our own GSON and do not rely on Atlassian GSON -->
</dependency>
<dependency>
<groupId>org.ini4j</groupId>
<artifactId>ini4j</artifactId>
<version>0.5.4</version>
<scope>compile</scope>
</dependency>
<!-- CONFLUENCE 8.8 + 9 LOGGING START -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.22.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.22.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.11</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.22.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>2.22.1</version>
<scope>test</scope>
</dependency>
<!-- CONFLUENCE 9 LOGGING END -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.6.28</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!-- OTHERWISE MOCKITO ERRORS: https://github.com/mockito/mockito/issues/1606 -->
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.14.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>1.14.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.openpojo</groupId>
<artifactId>openpojo</artifactId>
<version>0.8.6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-integration</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- somehow fugue and concurrent stuff is missing to mock MacroDefinition -->
<!-- We only pull it in for test scope -->
<!-- SEE: https://github.com/CENSORED/atlassian-mocked-apis-for-test-compat -->
<groupId>CENSORED</groupId>
<artifactId>confluence-8-8-compat</artifactId>
<version>1.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Needed to mock com.atlassian.confluence.api.service.content.ContentService -->
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.12.6</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Needed to make Velocity work in unit tests since Confluence 8.8 -->
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- Neded to mock MacroUtils -->
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.upm</groupId>
<artifactId>licensing-api</artifactId>
<version>3.0.1</version>
<!-- dony by confluence-plugins-platform-pom -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.upm</groupId>
<artifactId>upm-api</artifactId>
<version>3.0</version>
<!-- dony by confluence-plugins-platform-pom -->
<scope>provided</scope>
</dependency>
<dependency>
<!-- new in 5.0.0 see https://community.developer.atlassian.com/t/confluence-8-8-beta-is-available-now/76545/14 -->
<groupId>com.atlassian.plugins</groupId>
<artifactId>atlassian-plugins-webresource</artifactId>
<scope>provided</scope>
<version>5.6.5</version><!-- 5.6.5 is for Confluence 8.8 -->
</dependency>
<!-- CONFLUENCE 8.8 + 9 HTTPCLIENT START -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.15.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.14.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.16.0</version>
<scope>compile</scope>
<!-- HTTP CLIENT COMPILE DEP -->
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.3.0</version>
<scope>compile</scope>
<!-- HTTP CLIENT COMPILE DEP -->
</dependency>
<!-- CONFLUENCE 8.8 + 9 HTTPCLIENT END -->
<dependency>
<groupId>com.atlassian.plugins</groupId>
<artifactId>atlassian-whitelist-api-plugin</artifactId>
<version>4.0.7</version>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.atlassian.confluence</groupId>
<artifactId>confluence-plugins-platform-pom</artifactId>
<version>${confluence.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.atlassian.platform.dependencies</groupId>
<artifactId>platform-public-api</artifactId>
<version>${platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.atlassian.platform.dependencies</groupId>
<artifactId>platform-deprecated-public-api</artifactId>
<version>${platform.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
<configuration>
<argLine>
-Xmx1024m
-XX:MaxPermSize=2048M
--illegal-access=permit
--illegal-access=debug
</argLine>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
</configuration>
</plugin>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>confluence-maven-plugin</artifactId>
<version>${amps.version}</version>
<extensions>true</extensions>
<configuration>
<banningExcludes>
<exclude>org.slf4j:slf4j-api</exclude>
<exclude>org.apache.commons:commons-lang3</exclude>
<exclude>org.apache.httpcomponents:httpclient</exclude>
<exclude>org.apache.httpcomponents:httpcore</exclude>
<exclude>commons-io:commons-io</exclude>
</banningExcludes>
<allowGoogleTracking>false</allowGoogleTracking>
<productVersion>${confluence.version}</productVersion>
<productDataVersion>${confluence.data.version}</productDataVersion>
<productDataPath>${project.basedir}/src/test/resources/generated-test-resources-7.13.5.zip</productDataPath>
<!-- DO NOT MINIFY JS/CSS VIA YUI COMPRESSOR - START -->
<compressJs>false</compressJs>
<compressCss>false</compressCss>
<compressResources>false</compressResources>
<skipManifestValidation>true</skipManifestValidation>
<!-- DO NOT MINIFY JS/CSS VIA YUI COMPRESSOR - END -->
<enableQuickReload>true</enableQuickReload>
<instructions>
<Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
<Export-Package />
<Import-Package>
com.atlassian.sal.*,
!org.ini4j.*,
!com.google.gson.*,
!org.apache.commons.codec.binary.*,
!org.apache.commons.io.*,
!org.apache.commons.lang3.*,
!org.apache.http.*,
!org.slf4j.*,
!org.apache.commons.logging.*,
!org.apache.log.*,
!org.apache.logging.*,
javax.jms;resolution:=optional,
javax.script;resolution:=optional,
javax.sql;resolution:=optional,
javax.swing.text;resolution:=optional,
javax.tools;resolution:=optional,
javax.transaction.xa;resolution:=optional,
org.apache.avalon.framework.logger;resolution:=optional,
org.apache.commons.compress.*;resolution:=optional,
org.apache.commons.csv.*;resolution:=optional,
org.apache.kafka.*;resolution:=optional,
org.brotli.dec.*;resolution:=optional,
org.conscrypt.*;resolution:=optional,
com.conversantmedia.util.concurrent.*;resolution:=optional,
com.lmax.disruptor.*;resolution:=optional,
org.fusesource.*;resolution:=optional,
org.ietf.jgss.*;resolution:=optional,
org.jctools.queues.*;resolution:=optional,
org.zeromq.*;resolution:=optional,
*<!-- IMPORTANT FOR EVERYTHING ELSE -->
</Import-Package>
<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>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<configuration>
<includes>
<include>CENSORED/**/*</include>
</includes>
</configuration>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>target/jacoco.exec</dataFile>
<outputDirectory>target/jacoco-ut</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<!-- DO NEVER CHANGE THIS RANDOMLY !!! -->
<confluence.version>8.8.0</confluence.version>
<!-- DO NEVER CHANGE THIS RANDOMLY !!! -->
<confluence.data.version>8.8.0</confluence.data.version>
<amps.version>8.13.0</amps.version>
<platform.version>6.5.5</platform.version>
<plugin.testrunner.version>2.0.1</plugin.testrunner.version>
<atlassian.spring.scanner.version>2.1.10</atlassian.spring.scanner.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<testkit.version>6.3.11</testkit.version>
<atlassian.plugin.key>APPKEY</atlassian.plugin.key>
</properties>
</project>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment