<?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>
	<groupId>io.keikai</groupId>
	<artifactId>keikai</artifactId>
	<packaging>jar</packaging>
	<parent>
	    <groupId>io.keikai.parent</groupId>
	    <artifactId>keikai-build</artifactId>
	    <relativePath>../pom.xml</relativePath>
        <version>6.3.0.FL.20260326-Eval</version>
	</parent>
	<name>Keikai Spreadsheet</name>
    <properties>
        <maven.lessc.skip>false</maven.lessc.skip>
        <maven.js-minify.skip>false</maven.js-minify.skip>
    </properties>

	<description>Keikai Spreadsheet</description>
	<dependencies>
		<dependency>
			<groupId>io.keikai</groupId>
			<artifactId>keikai-model</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zul</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency> <!-- for ZK 10 issue -->
			<groupId>com.google.guava</groupId>
			<artifactId>failureaccess</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-math3</artifactId>
			<version>${commons-math.version}</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>${commons-io.version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>${servlet.version}</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
	<!-- there are common build settings among multiple projects, if using parent pom, we also need to publish parent pom -->
	<build>
		<sourceDirectory>${project.basedir}/src/</sourceDirectory>
		<resources>
			<resource>
				<directory>${project.basedir}/src/archive</directory>
			</resource>
		</resources>
		<finalName>${project.artifactId}-${project.version}</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.0.1</version>
				<configuration> <!-- disable javadoc error -->
					<doclint>none</doclint>
				</configuration>
			</plugin>
			<!--http://config-processor-maven-plugin.appspot.com/index.html-->
			<plugin>
				<groupId>com.google.code.maven-config-processor-plugin</groupId>
				<artifactId>config-processor-maven-plugin</artifactId>
				<version>2.7</version>
				<configuration>
					<transformations>
						<transformation>
							<input>src/archive/metainfo/zk/lang-addon.xml</input>
							<!--output to the original file -->
							<config>addon-processor.xml</config>
						</transformation>
					</transformations>
				</configuration>
			</plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <excludes>
                        <exclude>archive/**</exclude>
                    </excludes>
				</configuration>
			</plugin>
			<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.6.0</version>
                <executions>
                    <execution>
                        <id>compile-less</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <skip>${maven.lessc.skip}</skip>
                    <executable>npx</executable>
                    <arguments>
                        <argument>zklessc</argument>
                        <argument>--source</argument>
                        <argument>${project.basedir}/src/archive/web</argument>
                        <argument>--output</argument>
                        <argument>${project.build.outputDirectory}/web</argument>
                        <argument>--compress</argument>
						<argument>--less-opts</argument>
						<argument>{"javascriptEnabled": true}</argument>
					</arguments>
                </configuration>
            </plugin>
			<plugin>
				<groupId>com.github.eirslett</groupId>
				<artifactId>frontend-maven-plugin</artifactId>
				<version>1.14.1</version>
				<configuration>
					<nodeVersion>v18.18.2</nodeVersion>
					<workingDirectory>${project.build.directory}</workingDirectory>
				</configuration>
				<executions>
					<execution>
						<id>install node and npm</id>
						<goals>
							<goal>install-node-and-npm</goal>
						</goals>
					</execution>
					<execution>
						<id>npm install</id>
						<goals>
							<goal>npm</goal>
						</goals>
						<configuration>
							<arguments>install -f</arguments>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<execution>
						<phase>process-resources</phase>
						<configuration>
                            <skip>${maven.js-minify.skip}</skip>
							<target>
								<copy todir="${project.build.outputDirectory}/web">
									<fileset dir="${project.basedir}/src/archive/web"/>
									<globmapper from="*.js" to="*.src.js"/>
								</copy>
							</target>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>com.github.blutorange</groupId>
				<artifactId>closure-compiler-maven-plugin</artifactId>
				<version>2.31.0</version>
				<executions>
					<execution>
						<phase>generate-resources</phase>
						<goals>
							<goal>minify</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
                    <skip>${maven.js-minify.skip}</skip>
					<baseSourceDir>${basedir}/src/archive/web</baseSourceDir>
					<baseTargetDir>${project.build.outputDirectory}/web</baseTargetDir>
					<includes>
						<include>**/*.js</include>
					</includes>
					<skipMerge>true</skipMerge>
					<closureCompilationLevel>WHITESPACE_ONLY</closureCompilationLevel>
					<closureEmitUseStrict>false</closureEmitUseStrict>
					<outputFilename>#{path}/#{basename}.#{extension}</outputFilename>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
