<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.7.1</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>tec.uom.lib</groupId>
			<artifactId>uom-lib-common</artifactId>
		</dependency>
        <dependency>
        	<groupId>org.eclipse.uomo</groupId>
        	<artifactId>org.eclipse.uomo.units</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>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>maven-geotoolkit.org</id>
            <name>GeoToolkit Repository for Maven</name>
            <url>https://maven.geotoolkit.org/</url>
        </repository>
        <repository>
			<id>eclipse-central</id>
			<name>Central Eclipse.org Nexus</name>
			<url>https://maven.eclipse.org/nexus/content/groups/central/</url>
		</repository>
		<repository>
			<id>spring-plugins</id>
			<name>Spring Plugins Repository</name>
			<url>https://repo.spring.io/plugins-release/</url>
		</repository>
    </repositories>
</project>