<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>
	<groupId>de.foellix</groupId>
	<artifactId>AQL-System</artifactId>
	<version>1.2.0</version>
	<packaging>jar</packaging>

	<name>AQL-System</name>
	<description>Android App Analysis Query Language - System</description>
	<url>https://FoelliX.github.io/AQL-System</url>

	<properties>
		<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<timestamp>${maven.build.timestamp}</timestamp>
		<maven.build.timestamp.format>ddMMyyyyHHmmssS</maven.build.timestamp.format>
	</properties>

	<profiles>
		<profile>
			<id>Windows</id>
			<activation>
				<os>
					<family>Windows</family>
				</os>
			</activation>
			<properties>
				<script.extension>.bat</script.extension>
			</properties>
		</profile>
		<profile>
			<id>unix</id>
			<activation>
				<os>
					<family>unix</family>
				</os>
			</activation>
			<properties>
				<script.extension>.sh</script.extension>
			</properties>
		</profile>
		<profile>
			<id>release-sign-artifacts</id>
			<activation>
				<property>
					<name>performRelease</name>
					<value>true</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<version>3.1.0</version>
						<executions>
							<execution>
								<id>attach-sources</id>
								<goals>
									<goal>jar-no-fork</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<version>3.1.0</version>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>1.6</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.sonatype.plugins</groupId>
						<artifactId>nexus-staging-maven-plugin</artifactId>
						<version>1.6.8</version>
						<extensions>true</extensions>
						<configuration>
							<serverId>ossrh</serverId>
							<nexusUrl>https://oss.sonatype.org/</nexusUrl>
							<autoReleaseAfterClose>true</autoReleaseAfterClose>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>build-lib-jar</id>
			<activation>
				<property>
					<name>buildLib</name>
					<value>true</value>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-jar-plugin</artifactId>
						<version>3.1.0</version>
						<executions>
							<execution>
								<id>Lib</id>
								<goals>
									<goal>jar</goal>
								</goals>
								<configuration>
									<classifier>Lib-${project.version}</classifier>
									<includes>
										<include>tool.properties</include>
										<include>**/datastructure/**/*</include>
										<include>**/system/task/*TaskInfo.class</include>
									</includes>
									<excludes>
										<exclude>**/datastructure/handler/QuestionHandler.class</exclude>
									</excludes>
									<outputDirectory>${project.basedir}/target/build</outputDirectory>
									<finalName>AQL</finalName>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<build>
		<defaultGoal>clean install exec:exec</defaultGoal>
		<directory>target</directory>

		<outputDirectory>target/classes</outputDirectory>
		<sourceDirectory>src</sourceDirectory>
		<testSourceDirectory>testsrc</testSourceDirectory>

		<resources>
			<resource>
				<directory>${project.basedir}</directory>
				<includes>
					<include>tool.properties</include>
				</includes>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>${project.basedir}</directory>
				<includes>
					<include>manpage</include>
				</includes>
			</resource>
			<resource>
				<directory>${project.basedir}</directory>
				<includes>
					<include>manual.pdf</include>
				</includes>
				<targetPath>${project.basedir}/target/build</targetPath>
			</resource>
			<resource>
				<directory>${project.basedir}/mvn</directory>
				<includes>
					<include>flushMemory.sh</include>
					<include>killpid.sh</include>
					<include>*.xml</include>
				</includes>
				<targetPath>${project.basedir}/target/build</targetPath>
			</resource>
			<resource>
				<directory>${project.basedir}/data</directory>
				<includes>
					<include>**/*</include>
				</includes>
				<excludes>
					<exclude>pscout/**/*</exclude>
					<exclude>storage/**/*</exclude>
					<exclude>temp/**/*</exclude>
					<exclude>gui/temp.png</exclude>
					<exclude>**/*.ser</exclude>
					<exclude>**/*.psd</exclude>
				</excludes>
				<targetPath>${project.basedir}/target/build/data</targetPath>
			</resource>
		</resources>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>3.1.0</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
						<configuration>
							<archive>
								<manifest>
									<mainClass>
										de.foellix.aql.ui.cli.CommandLineInterface
									</mainClass>
								</manifest>
							</archive>
							<descriptorRefs>
								<descriptorRef>jar-with-dependencies</descriptorRef>
							</descriptorRefs>
							<outputDirectory>${project.basedir}/target/build</outputDirectory>
							<finalName>${project.name}-${project.version}</finalName>
							<appendAssemblyId>false</appendAssemblyId>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<version>1.6.0</version>
				<executions>
					<execution>
						<goals>
							<goal>exec</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<executable>mvn/build${script.extension}</executable>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.0</version>
				<configuration>
					<excludedGroups>requiresBuild</excludedGroups>
					<excludedGroups>systemIsSetup</excludedGroups>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
		<dependency>
			<groupId>com.google.protobuf</groupId>
			<artifactId>protobuf-java</artifactId>
			<version>3.7.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.fxmisc.richtext/richtextfx -->
		<dependency>
			<groupId>org.fxmisc.richtext</groupId>
			<artifactId>richtextfx</artifactId>
			<version>0.10.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.47</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.9.9</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.9.9</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.9.9</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/net.dongliu/apk-parser -->
		<dependency>
			<groupId>net.dongliu</groupId>
			<artifactId>apk-parser</artifactId>
			<version>2.6.6</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna-platform -->
		<dependency>
			<groupId>net.java.dev.jna</groupId>
			<artifactId>jna-platform</artifactId>
			<version>5.3.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
		<dependency>
			<groupId>net.java.dev.jna</groupId>
			<artifactId>jna</artifactId>
			<version>5.3.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.fusesource.jansi/jansi -->
		<dependency>
			<groupId>org.fusesource.jansi</groupId>
			<artifactId>jansi</artifactId>
			<version>1.18</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.mashape.unirest/unirest-java -->
		<dependency>
			<groupId>com.mashape.unirest</groupId>
			<artifactId>unirest-java</artifactId>
			<version>1.4.9</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>2.1.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.4.2</version>
			<scope>test</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>5.4.2</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<developers>
		<developer>
			<name>Felix Pauck</name>
			<email>fpauck@mail.uni-paderborn.de</email>
			<organization>Paderborn University</organization>
			<organizationUrl>https://cs.uni-paderborn.de</organizationUrl>
		</developer>
	</developers>

	<scm>
		<connection>scm:git:git://github.com/FoelliX/AQL-System.git</connection>
		<developerConnection>scm:git:ssh://github.com:FoelliX/AQL-System.git</developerConnection>
		<url>http://github.io/FoelliX/AQL-System</url>
	</scm>

	<licenses>
		<license>
			<name>GNU General Public License v3.0</name>
			<url>https://www.gnu.org/licenses/gpl-3.0.txt</url>
		</license>
	</licenses>

	<distributionManagement>
		<snapshotRepository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>

</project>