<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>
		<artifactId>org.eclipse.uomo.examples.units</artifactId>
		<groupId>org.eclipse.uomo.examples.units</groupId>
		<version>0.8.0-SNAPSHOT</version>
	</parent>
	<artifactId>org.eclipse.uomo.examples.units.console</artifactId>
	<name>UOMo Units Console Examples</name>
	<dependencies>
		<dependency>
            <groupId>javax.measure</groupId>
            <artifactId>unit-api</artifactId>
		</dependency>	
        <dependency>
        	<groupId>tech.units</groupId>
        	<artifactId>indriya</artifactId>
        </dependency>
       	<dependency>
			<groupId>si.uom</groupId>
			<artifactId>si-units</artifactId>
		</dependency>
		<dependency>
			<groupId>systems.uom</groupId>
			<artifactId>systems-common</artifactId>
		</dependency>
		<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
        	<groupId>org.eclipse.uomo</groupId>
        	<artifactId>org.eclipse.uomo.core</artifactId>   	
        </dependency>
        <dependency>
        	<groupId>com.ibm.icu</groupId>
        	<artifactId>icu4j</artifactId>
        </dependency>
		<dependency>
			<groupId>org.eclipse</groupId>
			<artifactId>osgi</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.uomo</groupId>
			<artifactId>org.eclipse.uomo.util</artifactId>
		</dependency>
	</dependencies>

	<!-- ======================================================= -->
	<!-- Build Settings -->
	<!-- ======================================================= -->
	<build>
		<plugins>
			<!-- ======================================================= -->
			<!-- Compilation -->
			<!-- ======================================================= -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>${project.build.javaVersion}</source>
					<target>${project.build.javaVersion}</target>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
	
	<!-- ==================================================== -->
    <!-- Repositories. This is where Maven looks for dependencies. The Maven 
        repository is implicit and doesn't need to be specified. -->
    <!-- ==================================================== -->
    <repositories>
        <repository>
			<id>eclipse-central</id>
			<name>Central Eclipse.org Nexus</name>
			<url>http://maven.eclipse.org/nexus/content/groups/central/</url>
		</repository>               
    </repositories>
</project>