<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <artifactId>tools</artifactId>
    <groupId>com.google.i18n.phonenumbers</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <groupId>com.google.i18n.phonenumbers.tools</groupId>
  <artifactId>java-build</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>Libphonenumber Java and JavaScript build tools</name>
  <description>
    Java and JavaScript build tools that generate the Java and JavaScript metadata code needed to
    build the libphonenumber library. The Java build tools also transform the geocoding data from
    text to binary format.
  </description>

  <properties>
    <phonenumberutil.resources.dir>
      ${project.dir}/../../../../java/libphonenumber/src/
    </phonenumberutil.resources.dir>
  </properties>

  <build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>test</testSourceDirectory>
    <!-- Include the PhoneNumberUtil metadata files. -->
    <resources>
      <resource>
        <directory>${phonenumberutil.resources.dir}</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>${phonenumberutil.resources.dir}</directory>
      </testResource>
      <testResource>
        <directory>test/com/google/i18n/phonenumbers/buildtools/testdata</directory>
        <targetPath>com/google/i18n/phonenumbers/buildtools/testdata</targetPath>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <source>1.7</source>
	  <target>1.8</target>
	  <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.9.1</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <!-- Add ../../../java/libphonenumber/src/ to make Phonemetadata.java available to
                     the source directories. -->
                <source>../../../java/libphonenumber/src/</source>
                <!-- Add ../../../java/internal/phoneprefix/src/ to make PhonePrefixMap.java
                     available to the source directories. -->
                <source>../../../java/internal/prefixmapper/src/</source>
                <!-- Add ../common/src/ which contains BuildMetadataFromXml.java -->
                <source>../common/src/</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- Build a JAR that contains the Java and JavaScript build tools. -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>com.google.i18n.phonenumbers.EntryPoint</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>
