<?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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>
	<groupId>es.gob.afirma.jmulticard</groupId>
	<artifactId>jmulticard-base</artifactId>
	<version>2.0</version>
	<packaging>pom</packaging>
	
	<name>jmulticard-base</name>
	<description>Proyecto Java para el uso de DNIe y tarjetas CERES</description>
	<url>https://administracionelectronica.gob.es/ctt/clienteafirma</url>
	
	<developers>
		<developer>
			<name>Agencia Estatal de Administración Digital</name>
			<email>soporte.afirma@correo.gob.es</email>
			<organization>Gobierno de España</organization>
			<organizationUrl>https://administracionelectronica.gob.es</organizationUrl>
		</developer>
		<developer>
			<name>Tomás García-Merás</name>
			<email>clawgrip@hotmail.com</email>
		</developer>
	</developers>
	
	<licenses>
		<license>
			<name>GPL-v2.0</name>
			<url>http://www.gnu.org/licenses/gpl-2.0.txt</url>
		</license>
		<license>
			<name>EUPL-v1.1</name>
			<url>http://joinup.ec.europa.eu/system/files/ES/EUPL%20v.1.1%20-%20Licencia.pdf</url>
		</license>
	</licenses>

	<scm>
		<connection>scm:git:https://github.com/ctt-gob-es/jmulticard.git</connection>
		<developerConnection>scm:git:ssh://github.com/ctt-gob-es/jmulticard.git</developerConnection>
		<url>https://github.com/ctt-gob-es/jmulticard</url>
	</scm>
	
	<properties>
		<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
		<java.source>1.8</java.source>
		<junit.version>5.10.2</junit.version>
		<maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version>
		<maven-compiler-plugin.version>3.12.1</maven-compiler-plugin.version>
		<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
		<maven-source-plugin.version>3.3.0</maven-source-plugin.version>
	</properties>
	
	<dependencies>
		
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<profiles>

		<!-- Construcción por defecto -->
		<profile>
			<id>basic</id>
			<activation>
				<property>
					<name>basicModules</name>
					<value>!false</value>
				</property>
      		</activation>

			<modules>
				<module>jmulticard</module>
				<module>jmulticard-jsr268</module>
				<module>jmulticard-jse</module>
			</modules>

	    </profile>

		<!-- Construcción que incluye el módulo Android -->
		<profile>
			<id>android</id>
			<activation>
				<property>
					<name>android</name>
					<value>true</value>
				</property>
      		</activation>

			<modules>
				<module>jmulticard</module>
				<module>jmulticard-android</module>
			</modules>

	    </profile>
		
		<!-- Construcción que incluye el módulo iOS -->
		<profile>
			<id>ios</id>
			<activation>
				<property>
					<name>ios</name>
					<value>true</value>
				</property>
      		</activation>

			<modules>
				<module>jmulticard</module>
				<module>jmulticard-crypto</module>
			</modules>

	    </profile>
		
		<!-- Construcción para despliegue en el repositorio de la SGAD -->
		<profile>
			<id>minhap</id>
			<distributionManagement>
				<repository>
					<id>MINHAP-central</id>
					<name>artefactos.scae.redsara.es-releases</name>
					<url>https://artefactos.scae.redsara.es/artifactory/AFIRMA-release/</url>
				</repository>
				<snapshotRepository>
					<id>MINHAP-snapshots</id>
					<name>artefactos.scae.redsara.es-snapshots</name>
					<url>https://artefactos.scae.redsara.es/artifactory/AFIRMA-snapshot/</url>
				</snapshotRepository>
			</distributionManagement>
	    </profile>

		<!-- Construcción para despliegue en el repositorio de artefactos -->
		<profile>
			<id>env-deploy</id>
			<activation>
				<property>
				  <name>env</name>
				  <value>deploy</value>
				</property>
			</activation>
		  
		  	<modules>
				<module>jmulticard</module>
				<module>jmulticard-android</module>
				<module>jmulticard-jsr268</module>
				<module>jmulticard-jse</module>
			</modules>

			<build>
				<plugins>

					<plugin>
					  <groupId>org.apache.maven.plugins</groupId>
					  <artifactId>maven-source-plugin</artifactId>
					  <version>${maven-source-plugin.version}</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>${maven-javadoc-plugin.version}</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>3.2.0</version>
					  <executions>
						<execution>
						  <id>sign-artifacts</id>
						  <phase>verify</phase>
						  <goals>
							<goal>sign</goal>
						  </goals>
						</execution>
					  </executions>
					</plugin>
					
					<plugin>
					  <groupId>org.sonatype.central</groupId>
					  <artifactId>central-publishing-maven-plugin</artifactId>
					  <version>0.8.0</version>
					  <extensions>true</extensions>
					  <configuration>
						<publishingServerId>central</publishingServerId>
					  </configuration>
					</plugin>
					
				</plugins>
			</build>
		</profile>
	</profiles>
	
	<build>
		<plugins>

			<!-- Forzamos al uso de una version minima de Maven -->
			<plugin>
			  <groupId>org.apache.maven.plugins</groupId>
			  <artifactId>maven-enforcer-plugin</artifactId>
			  <version>3.4.1</version>
			  <executions>
				<execution>
				  <id>enforce-maven</id>
				  <goals>
					<goal>enforce</goal>
				  </goals>
				  <configuration>
					<rules>
					  <requireMavenVersion>
						<version>3.6.0</version>
					  </requireMavenVersion>
					</rules>
				  </configuration>
				</execution>
			  </executions>
			</plugin>
			
			<!-- Establecemos la version de codigo compatible -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${maven-compiler-plugin.version}</version>
				<configuration>
					<source>${java.source}</source>
					<target>${java.source}</target>
				</configuration>
			</plugin>
			
			<!-- Omitimos la inclusion de los paquetes de modulo (package-info.class) -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>${maven-jar-plugin.version}</version>
				<configuration>
					<excludes>
						<exclude>**/package-info.class</exclude>
					</excludes>
				</configuration>
			</plugin>

			<!-- Configuracion para la correcta configuracion de los JUnit en versiones diversas -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.5.0</version>
			</plugin>
		</plugins>
	</build>
</project>
