<?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>

	<groupId>org.bitbucket.goalhub.grammar</groupId>
	<artifactId>languageTools</artifactId>
	<parent>
		<groupId>org.bitbucket.goalhub</groupId>
		<artifactId>grammar</artifactId>
		<version>2.1.1</version>
	</parent>

	<description>The GOAL grammar, and tools for parsing and semantic analysis of GOAL agent program code.</description>
	
	<properties>
		<antlr.version>4.7.1</antlr.version>
	</properties>
	
	<dependencies>
		<dependency>
			<groupId>org.antlr</groupId>
			<artifactId>antlr4-runtime</artifactId>
			<version>${antlr.version}</version>
		</dependency>

		<dependency>
			<groupId>${krGroup}</groupId>
			<artifactId>krInterface</artifactId>
			<version>${krVersion}</version>
		</dependency>

		<dependency>
			<groupId>${krGroup}</groupId>
			<artifactId>krFactory</artifactId>
			<version>${krVersion}</version>
		</dependency>

		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>cognitiveKrInterface</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>cognitiveKrFactory</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>commons-cli</groupId>
			<artifactId>commons-cli</artifactId>
			<version>1.4</version>
		</dependency>

		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.6</version>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.7</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${jUnit}</version>
			<scope>test</scope>
		</dependency>
		
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>1.10.19</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>3.1.1</version>
				<executions>
					<execution>
						<id>analyze</id>
						<phase>verify</phase>
						<goals>
							<goal>analyze-only</goal>
						</goals>
						<configuration>
							<failOnWarning>true</failOnWarning>
							<ignoreNonCompile>true</ignoreNonCompile>
							<ignoredUsedUndeclaredDependencies>
								<ignoredUsedUndeclaredDependency>org.checkerframework:*</ignoredUsedUndeclaredDependency>
							</ignoredUsedUndeclaredDependencies>
							<ignoredUnusedDeclaredDependencies>
								<ignoredUnusedDeclaredDependency>commons-io:*</ignoredUnusedDeclaredDependency>
							</ignoredUnusedDeclaredDependencies>
						</configuration>
					</execution>
				</executions>
			</plugin>
			
			<plugin>
				<groupId>org.antlr</groupId>
				<artifactId>antlr4-maven-plugin</artifactId>
				<version>${antlr.version}</version>
				<executions>
					<execution>
						<configuration>
							<listener>false</listener>
							<visitor>true</visitor>
							<libDirectory>${basedir}/src/main/antlr4/languageTools/parser/</libDirectory>
							<package>languageTools.parser</package>
						</configuration>
						<goals>
							<goal>antlr4</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<version>3.0.0</version>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>add-source</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>${project.build.directory}/generated-sources/antlr4/</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>3.1.0</version>
				<configuration>
					<archive>
						<manifest>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
							<mainClass>languageTools.Analyzer</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.1.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<createDependencyReducedPom>false</createDependencyReducedPom>
							<shadedArtifactAttached>true</shadedArtifactAttached>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer" />
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>languageTools.Analyzer</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>