<?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>wf</groupId> <artifactId>FluxWeb</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.optimize>true</maven.compiler.optimize> <spring.version>5.3.23</spring.version> <spring.security.version>5.7.3</spring.security.version> <log4j.version>2.19.0</log4j.version> <disruptor.version>3.4.4</disruptor.version> <surefire.version>3.0.0-M5</surefire.version> <r2dbcH2.version> 0.9.1.RELEASE</r2dbcH2.version> <jedisMock.version>1.0.4</jedisMock.version> <netty.version>4.1.84.Final</netty.version> <reactor-netty.version>1.0.23</reactor-netty.version> <exec.mainClass>wf.Main</exec.mainClass> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webflux</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!--<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency>--> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring5</artifactId> <version>3.1.0.RC1</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> <version>3.1.0.RC1</version> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.projectreactor.netty</groupId> <artifactId>reactor-netty</artifactId> <version>${reactor-netty.version}</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-resolver-dns-native-macos</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> <version>${netty.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> <version>6.2.1.RELEASE</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>${spring.security.version}</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-r2dbc</artifactId> <version>1.5.3</version> </dependency> <dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-spi</artifactId> <version>1.0.0.RELEASE</version> </dependency> <dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-pool</artifactId> <version> 0.9.2.RELEASE</version> </dependency> <dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-postgresql</artifactId> <version>0.8.13.RELEASE</version> </dependency> <!--如果使用M$ SQL--> <!--<dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-mssql</artifactId> <version>0.9.0.RELEASE</version> </dependency>--> <dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-h2</artifactId> <version>${r2dbcH2.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.github.fppt</groupId> <artifactId>jedis-mock</artifactId> <version>${jedisMock.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.11.1</version> </dependency> <!--Log4j2 start--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>${disruptor.version}</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.5.0-b01</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> </dependency> <!--Log4j2 end--> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <version>3.4.24</version> <scope>test</scope> </dependency> <dependency> <groupId>cn.apiclub.tool</groupId> <artifactId>simplecaptcha</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>webjars-locator</artifactId> <version>0.45</version> </dependency> <dependency> <groupId>org.webjars.npm</groupId> <artifactId>purecss</artifactId> <version>2.0.6</version> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.6.1</version><!--TestNg Rquires version 3.5.1--> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <version>${spring.security.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test-autoconfigure</artifactId> <version>2.7.4</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.jboss.spec.javax.websocket</groupId> <artifactId>jakarta.websocket-client-api</artifactId> <version>2.0.0.Final</version> <scope>test</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.23.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.0.0</version> <scope>test</scope> </dependency> <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.65.1</version> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>dev</id> <properties> <spring.profiles.active>dev</spring.profiles.active> <http.port>8080</http.port> <spring.freemarker.checkTemplateLocation>false</spring.freemarker.checkTemplateLocation> </properties> <dependencies> <dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-h2</artifactId> <version>${r2dbcH2.version}</version> </dependency> <dependency> <groupId>com.github.fppt</groupId> <artifactId>jedis-mock</artifactId> <version>${jedisMock.version}</version> </dependency> </dependencies> </profile> <profile> <id>prod</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <spring.profiles.active>prod</spring.profiles.active> <http.port>80</http.port> </properties> <dependencies> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.5.0</version> </dependency> </dependencies> </profile> </profiles> <build> <finalName>${project.artifactId}</finalName> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <testResources> <testResource> <directory>${basedir}/src/test/resources</directory> <filtering>true</filtering> </testResource> </testResources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.10.1</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> <showDeprecation>true</showDeprecation> <optimize>true</optimize> <compilerArgument>-Xlint:unchecked</compilerArgument> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> <configuration> <mainClass>${exec.mainClass}</mainClass> <cleanupDaemonThreads>false</cleanupDaemonThreads> <!--Template 在 classpath 才能修改後重載入,但會造成Resource無法Filter 或者直接修改 ${project.build.outputDirectory}/templates/*.html --> <!--<addResourcesToClasspath>true</addResourcesToClasspath>--> <systemProperties> <systemProperty> <key>spring.profiles.active</key> <value>${spring.profiles.active}</value> </systemProperty> <systemProperty> <key>http.port</key> <value>${http.port}</value> </systemProperty> </systemProperties> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${surefire.version}</version> <configuration> <skip>false</skip> <testFailureIgnore>true</testFailureIgnore> <disableXmlReport>true</disableXmlReport> <systemProperties> <property> <name>spring.profiles.active</name> <value>dev</value> </property> <property> <name>catalina.home</name> <value>${project.build.directory}</value> </property> <property> <name>http.port</name> <value>0</value> </property> <property> <name>redis.port</name> <value>0</value> </property> <property> <name>captcha</name> <value>1234</value> </property> <property> <name>spring.main.allow-bean-definition-overriding</name> <value>true</value> </property> <property> <name>spring.freemarker.checkTemplateLocation</name> <value>false</value> </property> </systemProperties> <suiteXmlFiles> <suiteXmlFile>${project.build.testOutputDirectory}/testng-unit.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.6.6</version> <executions> <execution> <id>package</id> <phase>package</phase> <goals> <goal>repackage</goal> </goals> <configuration> <attach>false</attach> </configuration> </execution> </executions> <configuration> <mainClass>${exec.mainClass}</mainClass> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.2</version> <configuration> <excludes> <exclude>*.sql</exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>