<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>
  <groupId>org.bukkit</groupId>
  <artifactId>craftbukkit</artifactId>
  <packaging>jar</packaging>
  <version>1.8-R0.1-SNAPSHOT</version>
  <name>CraftBukkit</name>
  <url>http://www.bukkit.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <api.version>unknown</api.version>
    <junit.version>4.11</junit.version>
    <minecraft.version>1.8</minecraft.version>
    <minecraft_version>1_8_R1</minecraft_version>
    <buildtag.prefix>git-Bukkit-</buildtag.prefix>
    <buildtag.suffix></buildtag.suffix>
  </properties>

  <repositories>
    <repository>
      <id>repobo-snap</id>
      <url>http://repo.bukkit.org/content/groups/public</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>bukkit-plugins</id>
      <url>http://repo.bukkit.org/content/groups/public</url>
    </pluginRepository>
  </pluginRepositories>

  <dependencies>
    <dependency>
      <groupId>org.bukkit</groupId>
      <artifactId>bukkit</artifactId>
      <version>${project.version}</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.spigotmc</groupId>
      <artifactId>minecraft-server</artifactId>
      <version>${minecraft.version}-SNAPSHOT</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>net.sf.jopt-simple</groupId>
      <artifactId>jopt-simple</artifactId>
      <version>3.2</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <!-- jline and jansi versions must be kept in sync -->
    <dependency>
      <groupId>jline</groupId>
      <artifactId>jline</artifactId>
      <version>2.6</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.fusesource.jansi</groupId>
      <artifactId>jansi</artifactId>
      <version>1.8</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.xerial</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.7.2</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.14</version>
      <type>jar</type>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.1</version>
    </dependency>
    <dependency>
      <groupId>org.avaje</groupId>
      <artifactId>ebean</artifactId>
      <version>2.7.3</version>
      <type>jar</type>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
      <version>1.9</version>
      <type>jar</type>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>17.0</version>
      <type>jar</type>
      <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <!-- testing -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-library</artifactId>
      <version>1.3</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- This builds a completely 'ready to start' jar with all dependencies inside -->
  <build>
    <defaultGoal>clean install</defaultGoal>
    <plugins>
      <plugin>
        <groupId>com.lukegb.mojo</groupId>
        <artifactId>gitdescribe-maven-plugin</artifactId>
        <version>1.3</version>
        <configuration>
          <outputPrefix>${buildtag.prefix}</outputPrefix>
          <outputPostfix>${buildtag.suffix}</outputPostfix>
        </configuration>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>gitdescribe</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <archive>
            <manifestEntries>
              <Main-Class>org.bukkit.craftbukkit.Main</Main-Class>
              <Implementation-Title>CraftBukkit</Implementation-Title>
              <Implementation-Version>${describe}</Implementation-Version>
              <Implementation-Vendor>Bukkit Team</Implementation-Vendor>
              <Specification-Title>Bukkit</Specification-Title>
              <Specification-Version>${api.version}</Specification-Version>
              <Specification-Vendor>Bukkit Team</Specification-Vendor>
              <Sealed>true</Sealed>
            </manifestEntries>
            <manifestSections>
              <manifestSection>
                <name>net/bukkit/</name>
                <manifestEntries>
                  <Sealed>true</Sealed>
                </manifestEntries>
              </manifestSection>
              <manifestSection>
                <name>com/bukkit/</name>
                <manifestEntries>
                  <Sealed>true</Sealed>
                </manifestEntries>
              </manifestSection>
              <manifestSection>
                <name>org/bukkit/</name>
                <manifestEntries>
                  <Sealed>true</Sealed>
                </manifestEntries>
              </manifestSection>
            </manifestSections>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>1.4</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <relocations>
                <relocation>
                  <pattern>org.bouncycastle</pattern>
                  <shadedPattern>net.minecraft.v${minecraft_version}.org.bouncycastle</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>joptsimple</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.joptsimple</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>jline</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.jline</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.ibex</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.org.ibex</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.gjt</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.org.gjt</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.gson</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.com.google.gson</shadedPattern>
                </relocation>
                <!-- These contain native libraries, and cannot be properly relocated
                <relocation>
                  <pattern>org.fusesource</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.${project.dependencies[4].version}.org.fusesource</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.sqlite</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.${project.dependencies[5].version}.org.sqlite</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.mysql</pattern>
                  <shadedPattern>org.bukkit.craftbukkit.libs.${project.dependencies[6].version}.com.mysql</shadedPattern>
                </relocation>
                !-->
                <relocation>
                    <pattern>org.bukkit.craftbukkit</pattern>
                    <shadedPattern>org.bukkit.craftbukkit.v${minecraft_version}</shadedPattern>
                    <excludes>
                        <exclude>org.bukkit.craftbukkit.Main*</exclude>
                    </excludes>
                </relocation>
                <relocation>
                    <pattern>net.minecraft.server</pattern>
                    <shadedPattern>net.minecraft.server.v${minecraft_version}</shadedPattern>
                </relocation>
              </relocations>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.11</version>
        <configuration>
          <workingDirectory>${basedir}/target/test-server</workingDirectory>
            <excludes>
              <exclude>org/bukkit/craftbukkit/updater/BukkitDLUpdaterServiceTest.java</exclude>
              <exclude>org/bukkit/craftbukkit/inventory/ItemStack*Test.java</exclude>
            </excludes>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
          <execution>
            <id>maps-file</id>
            <phase>package</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}</directory>
                  <filtering>true</filtering>
                  <includes>
                    <include>maps.yml</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.wolvereness</groupId>
        <artifactId>overmapped</artifactId>
        <version>0.0.2</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>map</goal>
            </goals>
            <configuration>
              <maps>${basedir}/target/maps.yml</maps>
              <input>${basedir}/target/${project.artifactId}-${project.version}.jar</input>
              <original>${basedir}/target/unmapped-${project.artifactId}-${project.version}.jar</original>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.lukegb.mojo</groupId>
                    <artifactId>
                      gitdescribe-maven-plugin
                    </artifactId>
                    <versionRange>[1.3,)</versionRange>
                    <goals>
                      <goal>gitdescribe</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>