<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">
	<parent>
		<artifactId>org.eclipse.uomo</artifactId>
		<groupId>org.eclipse.uomo</groupId>
		<version>0.9.0-SNAPSHOT</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<artifactId>org.eclipse.uomo.examples</artifactId>
	<packaging>pom</packaging>
	<name>Eclipse UOMo Examples</name>
	<build>
		<plugins>
			<!-- ======================================================= -->
			<!-- Compilation -->
			<!-- ======================================================= -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven.compilerPlugin.version}</version>
				<configuration>
					<source>${project.build.javaVersion}</source>
					<target>${project.build.javaVersion}</target>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<modules>
	<!--
		<module>business</module>
		-->
		<module>units</module>
		<module>ucum</module>
	</modules>
	<!-- modules> <module>org.eclipse.uomo.test</module> </modules -->

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>javax.measure</groupId>
				<artifactId>unit-api</artifactId>
				<version>1.0</version>
			</dependency>
			<dependency>
				<groupId>tech.units</groupId>
				<artifactId>indriya</artifactId>
				<version>${indriya-version}</version>
			</dependency>
			<dependency>
				<groupId>si.uom</groupId>
				<artifactId>si-units</artifactId>
				<version>${si-version}</version>
			</dependency>
			<dependency>
				<groupId>systems.uom</groupId>
				<artifactId>systems-common</artifactId>
				<version>${systems-version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.uomo</groupId>
				<artifactId>org.eclipse.uomo.util</artifactId>
				<version>${uomo-version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.uomo</groupId>
				<artifactId>org.eclipse.uomo.ucum</artifactId>
				<version>${uomo-version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.uomo</groupId>
				<artifactId>org.eclipse.uomo.business</artifactId>
				<version>${uomo-version}</version>
			</dependency>

			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.8.1</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest-all</artifactId>
				<version>1.1</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.eclipse.uomo</groupId>
				<artifactId>org.eclipse.uomo.core</artifactId>
				<version>${uomo-version}</version>
			</dependency>
			<dependency>
				<groupId>com.ibm.icu</groupId>
				<artifactId>icu4j</artifactId>
				<version>${icu4j-version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse</groupId>
				<artifactId>osgi</artifactId>
				<version>3.5.0.v20090520</version>
			</dependency>

		</dependencies>
	</dependencyManagement>

</project>