sonarqube/sonar-plugin-api/pom.xml
2017-09-12 10:52:16 +02:00

278 lines
8.7 KiB
XML

<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.sonarsource.sonarqube</groupId>
<artifactId>sonarqube</artifactId>
<version>6.6-SNAPSHOT</version>
</parent>
<artifactId>sonar-plugin-api</artifactId>
<packaging>jar</packaging>
<name>SonarQube :: Plugin API</name>
<properties>
<!--
version as stored in JAR and displayed in webapp. It is
overridden on Travis when replacing SNAPSHOT version by
build unique version, for instance "6.3.0.12345".
-->
<buildVersion>${project.version}</buildVersion>
<!--
a truncated version on three fields is kept for backward-compatibility
with scanners
-->
<buildVersionOnThreeFields>${buildVersion}</buildVersionOnThreeFields>
</properties>
<dependencies>
<!--
The following artifacts are shaded and relocated in an internal package.
They are not visible by plugins
-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
<!--
The following artifacts are shaded but not relocated. They
are provided at runtime, so plugins can use them but
can not change their version.
Long-term target is to remove them from API. They should be
embedded by plugins.
-->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sonar-check-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sonar-duplications</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--
Transitive dependencies available at runtime. They are not shaded with API
as they are not managed by SonarSource. Versions should not be
overridden by plugins though.
-->
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-lgpl</artifactId>
<exclusions>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.staxmate</groupId>
<artifactId>staxmate</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<optional>true</optional>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<!-- unit tests -->
<dependency>
<groupId>com.tngtech.java</groupId>
<artifactId>junit-dataprovider</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sonar-testing-harness</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>true</minimizeJar>
<createDependencyReducedPom>true</createDependencyReducedPom>
<artifactSet>
<excludes>
<exclude>org.codehaus.woodstox:woodstox-core-lgpl</exclude>
<exclude>org.codehaus.woodstox:stax2-api</exclude>
<exclude>org.codehaus.staxmate:staxmate</exclude>
</excludes>
</artifactSet>
<filters>
<!-- The following deps are used transitively, so make sure they are not minimized -->
<filter>
<artifact>${project.groupId}:sonar-duplications</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>org.codehaus.sonar:sonar-channel</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>org.sonarsource.sonarqube:sonar-check-api</artifact>
<includes>
<include>**</include>
</includes>
</filter>
</filters>
<relocations>
<relocation>
<pattern>com.google</pattern>
<shadedPattern>org.sonar.api.internal.google</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.commons</pattern>
<shadedPattern>org.sonar.api.internal.apachecommons</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.genthaler</groupId>
<artifactId>beanshell-maven-plugin</artifactId>
<executions>
<execution>
<id>compute-version-on-three-fields</id>
<phase>generate-resources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<script>
<![CDATA[
if (! "${buildVersion}".endsWith("-SNAPSHOT")) {
// example: "6.3.0.1234". To be backward-compatible with scanners, only "6.3.0" must be kept
fields = "${buildVersion}".split("\\.");
sj = new StringJoiner(".");
i = 0;
for (String field : fields) {
if (i == 3) {
break;
}
sj.add(field);
++i;
}
project.getProperties().setProperty("buildVersionOnThreeFields", sj.toString());
}
]]>
</script>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<!-- Used to resolve variables in files sq-version.txt and sonar-api-version.txt -->
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>