<?xml version="1.0" encoding="UTF-8"?>
<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>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-parent</artifactId>
		<version>1.5.8.e1</version>
		<relativePath>../spring-boot-parent</relativePath>
	</parent>
	<artifactId>spring-boot-cli</artifactId>
	<name>Spring Boot CLI</name>
	<description>Spring Boot CLI</description>
	<url>http://projects.spring.io/spring-boot/</url>
	<organization>
		<name>Pivotal Software, Inc.</name>
		<url>http://www.spring.io</url>
	</organization>
	<properties>
		<main.basedir>${basedir}/..</main.basedir>
		<start-class>org.springframework.boot.cli.SpringCli</start-class>
		<spring.profiles.active>default</spring.profiles.active>
		<generated.pom.dir>${project.build.directory}/generated-resources/org/springframework/boot/cli/compiler/dependencies</generated.pom.dir>
	</properties>
	<profiles>
		<profile>
			<id>integration</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<spring.profiles.active>integration</spring.profiles.active>
			</properties>
		</profile>
	</profiles>
	<dependencies>
		<!-- Compile -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-loader-tools</artifactId>
		</dependency>
		<dependency>
			<groupId>com.vaadin.external.google</groupId>
			<artifactId>android-json</artifactId>
		</dependency>
		<dependency>
			<groupId>jline</groupId>
			<artifactId>jline</artifactId>
		</dependency>
		<dependency>
			<groupId>net.sf.jopt-simple</groupId>
			<artifactId>jopt-simple</artifactId>
		</dependency>
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-aether-provider</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>org.eclipse.sisu.plexus</artifactId>
					<groupId>org.eclipse.sisu</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-settings-builder</artifactId>
		</dependency>
		<dependency>
			<groupId>org.codehaus.plexus</groupId>
			<artifactId>plexus-component-api</artifactId>
			<exclusions>
				<exclusion>
					<groupId>*</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-connector-basic</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-impl</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-spi</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-transport-file</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-transport-http</artifactId>
			<exclusions>
				<exclusion>
					<artifactId>jcl-over-slf4j</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.eclipse.aether</groupId>
			<artifactId>aether-util</artifactId>
		</dependency>
		<!-- Provided -->
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-templates</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>provided</scope>
		</dependency>
		<!-- Test -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot</artifactId>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<resources>
			<resource>
				<directory>${project.build.directory}/generated-resources</directory>
			</resource>
			<resource>
				<directory>${basedir}/src/main/resources</directory>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<additionalClasspathElements>
						<additionalClasspathElement>${project.build.directory}/generated-resources</additionalClasspathElement>
					</additionalClasspathElements>
					<systemPropertyVariables>
						<spring.profiles.active>${spring.profiles.active}</spring.profiles.active>
					</systemPropertyVariables>
				</configuration>
			</plugin>
			<!-- Build an executable JAR manually since we can't easily depend on
				a maven plugin that is part of the reactor -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-effective-pom</id>
						<phase>generate-resources</phase>
						<goals>
							<goal>copy</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.springframework.boot</groupId>
									<artifactId>spring-boot-dependencies</artifactId>
									<version>${project.version}</version>
									<type>effective-pom</type>
									<overWrite>true</overWrite>
									<outputDirectory>${generated.pom.dir}</outputDirectory>
									<destFileName>effective-pom.xml</destFileName>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>
					<execution>
						<id>unpack</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.springframework.boot</groupId>
									<artifactId>spring-boot-loader</artifactId>
									<version>${project.version}</version>
									<type>jar</type>
								</artifactItem>
							</artifactItems>
							<outputDirectory>${project.build.directory}/assembly</outputDirectory>
						</configuration>
					</execution>
					<execution>
						<id>copy</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/assembly/BOOT-INF/lib</outputDirectory>
							<includeScope>runtime</includeScope>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<executions>
					<execution>
						<id>jar-with-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
						<configuration>
							<descriptors>
								<descriptor>src/main/assembly/jar-with-dependencies.xml</descriptor>
							</descriptors>
							<archive>
								<manifest>
									<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
									<mainClass>org.springframework.boot.loader.JarLauncher</mainClass>
								</manifest>
								<manifestEntries>
									<Start-Class>${start-class}</Start-Class>
									<Class-Loader>groovy.lang.GroovyClassLoader</Class-Loader>
								</manifestEntries>
							</archive>
						</configuration>
					</execution>
					<execution>
						<id>bin-package</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
						<configuration>
							<descriptors>
								<descriptor>src/main/assembly/bin-package.xml</descriptor>
							</descriptors>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<dependencies>
					<dependency>
						<groupId>ant-contrib</groupId>
						<artifactId>ant-contrib</artifactId>
						<version>1.0b3</version>
						<exclusions>
							<exclusion>
								<groupId>ant</groupId>
								<artifactId>ant</artifactId>
							</exclusion>
						</exclusions>
					</dependency>
					<dependency>
						<groupId>org.apache.ant</groupId>
						<artifactId>ant-nodeps</artifactId>
						<version>1.8.1</version>
					</dependency>
					<dependency>
						<groupId>org.tigris.antelope</groupId>
						<artifactId>antelopetasks</artifactId>
						<version>3.2.10</version>
					</dependency>
				</dependencies>
				<executions>
					<execution>
						<id>homebrew</id>
						<phase>package</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<inherited>false</inherited>
						<configuration>
							<target>
								<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
								<taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" />
								<var name="version-type" value="${project.version}" />
								<propertyregex property="version-type" override="true" input="${version-type}" regexp=".*\.(.*)" replace="\1" />
								<propertyregex property="version-type" override="true" input="${version-type}" regexp="(M)\d+" replace="MILESTONE" />
								<propertyregex property="version-type" override="true" input="${version-type}" regexp="(RC)\d+" replace="MILESTONE" />
								<propertyregex property="version-type" override="true" input="${version-type}" regexp="BUILD-(.*)" replace="SNAPSHOT" />
								<stringutil string="${version-type}" property="repo">
									<lowercase />
								</stringutil>
								<checksum algorithm="sha-256" file="${project.build.directory}/spring-boot-cli-${project.version}-bin.tar.gz" property="checksum" />
								<echo message="Customizing homebrew for ${project.version} with checksum ${checksum} in ${repo} repo" />
								<copy file="${basedir}/src/main/homebrew/springboot.rb" tofile="${project.build.directory}/springboot.rb" overwrite="true">
									<filterchain>
										<expandproperties />
									</filterchain>
								</copy>
								<attachartifact file="${project.build.directory}/springboot.rb" classifier="homebrew" type="rb" />
							</target>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>add-test-source</id>
						<phase>process-resources</phase>
						<goals>
							<goal>add-test-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/it/java</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-dependency-plugin
										</artifactId>
										<versionRange>
											[1.0.0,)
										</versionRange>
										<goals>
											<goal>unpack</goal>
											<goal>copy-dependencies</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>
