<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>apijson.jfinal</groupId>
	<artifactId>apijson-final</artifactId>
	<packaging>jar</packaging>
	<version>7.1.5</version>
	<name>Demo project for APIJSON Server based on JFinal</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>17</java.version>
		<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
		<maven.compiler.source>17</maven.compiler.source>
		<maven.compiler.target>17</maven.compiler.target>
	</properties>

	<dependencies>
		<!-- APIJSON 需要用的依赖库，1.2.0 以上 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.83</version>
		</dependency>

		<!-- apijson-framework 需要用的依赖库，4.0.0 以上 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
		</dependency>

		<!-- 可使用 libs 目录的 apijson-orm.jar 和 apijson-framework.jar 来替代，两种方式二选一 <<<<<<<<<< -->
		<dependency>
			<groupId>com.github.Tencent</groupId>
			<artifactId>APIJSON</artifactId>
			<version>8.0.0.1</version>
		</dependency>
		<dependency>
			<groupId>com.github.APIJSON</groupId>
			<artifactId>apijson-framework</artifactId>
			<version>7.2.0.1</version>
		</dependency>
		<!-- 可使用 libs 目录的 apijson-orm.jar 和 apijson-framework.jar 来替代，两种方式二选一 >>>>>>>>>> -->

		<!-- 需要用的数据库 JDBC 驱动 -->
		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
			<version>9.2.0</version>
		</dependency>
		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>42.7.2</version>
		</dependency>
		<!-- Oracle, SQLServer 等其它数据库的 JDBC 驱动，可以在这里加上 Maven 依赖或 libs 目录放 Jar 包并依赖 -->

		<!-- 需要用的 JFinal 框架，3.5 以上 -->
		<dependency>
			<groupId>com.jfinal</groupId>
			<artifactId>jfinal-undertow</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>com.jfinal</groupId>
			<artifactId>jfinal</artifactId>
			<version>4.9.06</version>
		</dependency>

		<!-- CORS 跨域 -->
		<dependency>
			<groupId>com.thetransactioncompany</groupId>
			<artifactId>cors-filter</artifactId>
			<version>2.5</version>
		</dependency>

	</dependencies>

	<repositories>
		<!-- APIJSON 必须用到的托管平台 -->
		<repository>
			<id>jitpack.io</id>
			<url>https://jitpack.io</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>

	<build>
		<!-- <finalName>helloworld</finalName> -->

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.1</version>
				<configuration>
					<source>17</source>
					<target>17</target>
					<encoding>UTF-8</encoding>
					<!-- java8 保留参数名编译参数 -->
					<compilerArgument>-parameters</compilerArgument>
					<compilerArguments>
						<verbose />
					</compilerArguments>
				</configuration>
			</plugin>

			<!-- 当项目的 web 资源在 src/main/webapp 下时，需要使用 maven-resources-plugin 将 web
				资源复制到 jar 包中去，注意打包的时候需要配置 engine： me.setBaseTemplatePath("webapp"); me.setToClassPathSourceFactory();
				如果 web 资源本身就放在 src/main/resources/webapp 之下，则不需要此插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>3.1.0</version>
				<executions>
					<execution>
						<id>copy-webapp</id>
						<phase>process-sources</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<encoding>UTF-8</encoding>
							<outputDirectory>${basedir}/target/classes/webapp</outputDirectory>
							<resources>
								<resource>
									<directory>${basedir}/src/main/webapp</directory>
									<includes>
										<!-- <include>**/*.xml</include> -->
										<!-- <include>**/**</include> -->
									</includes>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.2.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<finalName>helloworld</finalName>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>apijson.jfinal.DemoAppConfig</mainClass>
								</transformer>

								<!-- 下面的配置支持排除指定文件打包到 jar 之中，可以用于排除需要修改的配置文件以便于在外部的 config 目录下的 同名配置文件生效，建议使用
									Prop.appendIfExists(xxx_pro.txt) 在外部放一个非同名配置来覆盖开发环境的配置 则可以不用使用下面的配置，文档参考:
									http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#DontIncludeResourceTransformer -->
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
									<resources>
										<!-- <resource>jfinal-club-config-dev.txt</resource> -->
										<!-- <resource>.PDF</resource> -->
										<!-- <resource>READ.me</resource> -->
									</resources>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>

		</plugins>
	</build>
</project>



