<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
    <groupId>com.foxnicweb</groupId>  
    <artifactId>cangaroo</artifactId>  
    <version>1.7.1.RELEASE</version>  
    <name>Foxnic-Cangaroo</name>  
    <url>http://foxnicweb.com/docs/doc.html</url>  
    <description>Foxnic-Cangaroo</description>  
    <developers> 
        <developer> 
            <name>LeeFJ</name>  
            <email>leefangjie@qq.com</email>  
            <organization>FoxnicWeb</organization>  
            <url>http://foxnicweb.com/docs/doc.html</url>  
            <organizationUrl>http://web.foxnicweb.com/</organizationUrl> 
        </developer> 
    </developers>  
    <scm> 
        <connection>scm:git:https://gitee.com/LeeFJ/foxnic</connection>  
        <developerConnection>scm:git@gitee.com:LeeFJ/foxnic.git</developerConnection>  
        <url>https://gitee.com/LeeFJ/foxnic</url>  
        <tag>1.7.1.RELEASE</tag> 
    </scm>  
    <licenses> 
        <license> 
            <name>The Apache Software License, Version 2.0</name>  
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>  
            <distribution>repo</distribution>  
            <comments>A business-friendly OSS license</comments> 
        </license> 
    </licenses>  
    <properties> 
        <java.version>1.8</java.version>  
        <maven.compiler.source>1.8</maven.compiler.source>  
        <maven.compiler.target>1.8</maven.compiler.target>  
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <maven.test.skip>true</maven.test.skip>  
        <maven.javadoc.skip>true</maven.javadoc.skip>  
        <foxnic.version>1.7.1.RELEASE</foxnic.version> 
    </properties>  
    <dependencies> 
        <dependency> 
            <groupId>jakarta.servlet</groupId>  
            <artifactId>jakarta.servlet-api</artifactId>  
            <version>4.0.4</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>commons-io</groupId>  
            <artifactId>commons-io</artifactId>  
            <version>2.11.0</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context</artifactId>  
            <version>5.2.8.RELEASE</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>com.foxnicweb</groupId>  
            <artifactId>foxnic-sql</artifactId>  
            <version>${foxnic.version}</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>com.foxnicweb</groupId>  
            <artifactId>foxnic-dao</artifactId>  
            <version>${foxnic.version}</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>org.slf4j</groupId>  
            <artifactId>slf4j-api</artifactId>  
            <version>1.7.30</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <version>8.0.27</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>commons-codec</groupId>  
            <artifactId>commons-codec</artifactId>  
            <version>1.15</version>  
            <scope>provided</scope> 
        </dependency>  
        <dependency> 
            <groupId>com.github.ben-manes.caffeine</groupId>  
            <artifactId>caffeine</artifactId>  
            <version>2.8.8</version>  
            <scope>provided</scope> 
        </dependency> 
    </dependencies>  
    <build> 
        <finalName>${artifactId}</finalName>  
        <plugins> 
            <plugin> 
                <groupId>com.github.wvengen</groupId>  
                <artifactId>proguard-maven-plugin</artifactId>  
                <version>2.5.3</version>  
                <executions> 
                    <execution> 
                        <phase>package</phase>  
                        <goals> 
                            <goal>proguard</goal> 
                        </goals> 
                    </execution> 
                </executions>  
                <configuration> 
                    <injar>${project.build.finalName}.jar</injar>  
                    <outjar>${project.build.finalName}.jar</outjar>  
                    <!--<proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>-->  
                    <obfuscate>true</obfuscate>  
                    <options> 
                        <!-- 不做收缩（删除注释、未被引用代码）-->  
                        <!--                        <option>-dontshrink</option>-->  
                        <!-- 不做优化（变更代码实现逻辑）-->  
                        <!--                        <option>-dontoptimize</option>-->  
                        <!--                        <option>-->  
                        <!--                            <![CDATA[-->  
                        <!--                            -keepclassmembers class com.github.foxnic.grant.protect.InternalLock {-->  
                        <!--                            <init>(java.lang.String);-->  
                        <!--                            }-->  
                        <!--                            ]]>-->  
                        <!--                        </option>-->  
                        <!-- 不忽略非公用类文件及成员-->  
                        <!--                        <option>-dontskipnonpubliclibraryclasses</option>-->  
                        <!--                        <option>-dontskipnonpubliclibraryclassmembers</option>-->  
                        <!-- 优化时允许访问并修改有修饰符的类和类的成员 -->  
                        <option>-allowaccessmodification</option>  
                        <!-- 确定统一的混淆类的成员名称来增加混淆-->  
                        <!--                        <option>-useuniqueclassmembernames</option>-->  
                        <!--保持目录结构，否则spring的自动注入无法使用-->  
                        <option>-keepdirectories</option>  
                        <!--                        <option>-printseeds</option>-->  
                        <option>-keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable, *Annotation*,EnclosingMethod</option>  
                        <option>-dontpreverify</option>  
                        <option>-adaptclassstrings</option>  
                        <option>-dontskipnonpubliclibraryclassmembers</option>  
                        <option>-keep class com.github.foxnic.springboot.CP { public void *(*); }</option>  
                        <option>-keepnames interface ** { *; }</option>  
                        <!-- 固定几个类不能混淆-->  
                        <!--                        <option>-keepnames class com.jingchen.ccny.base.BaseService { *; }</option>-->  
                        <!--                        <option>-keep class com.jingchen.ccny.common.cache.ConvertorNewCache { *; }</option>-->  
                        <!--                        <option>-keep class com.jingchen.ccny.base.ControllerContext { *; }</option>-->  
                        <!--                        <option>-keep class * extends com.jingchen.ccny.base.BaseService</option>-->  
                        <!--                        <option>-keep class * implements com.jingchen.ccny.common.service.CallBackGuiService</option>-->  
                        <!--                        <option>-keep class * implements com.jingchen.ccny.common.service.CallBackUDService</option>-->  
                        <!--                        <option>-keep class com.jingchen.ccny.util.SpringUtil</option>-->  
                        <option>-keep interface * extends * { *; }</option>  
                        <!--                         此选项将在所有包的所有类中保存所有原始定义的注释.-->  
                        <option>-keep class * { @org.springframework.beans.factory.annotation.Autowired *; @org.springframework.beans.factory.annotation.Value *; @org.springframework.stereotype.Service *; @org.springframework.stereotype.Component *; @org.springframework.scheduling.annotation.Scheduled *; @com.github.foxnic.springboot.KP *; }</option> 
                    </options>  
                    <libs> 
                        <!-- Include main JAVA library required.-->  
                        <lib>${java.home}/lib/rt.jar</lib>  
                        <lib>${java.home}/lib/jce.jar</lib> 
                    </libs> 
                </configuration>  
                <dependencies> 
                    <dependency> 
                        <groupId>com.guardsquare</groupId>  
                        <artifactId>proguard-base</artifactId>  
                        <version>7.2.1</version> 
                    </dependency>  
                    <dependency> 
                        <groupId>com.guardsquare</groupId>  
                        <artifactId>proguard-core</artifactId>  
                        <version>8.0.7</version> 
                    </dependency> 
                </dependencies> 
            </plugin>  
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-dependency-plugin</artifactId>  
                <executions> 
                    <execution> 
                        <id>copy-dependencies-runtime</id>  
                        <phase>package</phase>  
                        <goals> 
                            <goal>copy-dependencies</goal> 
                        </goals>  
                        <configuration> 
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>  
                            <includeScope>runtime</includeScope>  
                            <!--依赖传递 -->  
                            <excludeTransitive>false</excludeTransitive> 
                        </configuration> 
                    </execution>  
                    <execution> 
                        <id>copy-dependencies-system</id>  
                        <phase>package</phase>  
                        <goals> 
                            <goal>copy-dependencies</goal> 
                        </goals>  
                        <configuration> 
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>  
                            <includeScope>system</includeScope> 
                        </configuration> 
                    </execution>  
                    <execution> 
                        <id>copy-dependencies-compile</id>  
                        <phase>package</phase>  
                        <goals> 
                            <goal>copy-dependencies</goal> 
                        </goals>  
                        <configuration> 
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>  
                            <includeScope>compile</includeScope> 
                        </configuration> 
                    </execution> 
                </executions> 
            </plugin>  
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-source-plugin</artifactId>  
                <version>3.2.1</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>2.10.4</version>  
                <configuration> 
                    <encoding>${javadoc.encoding}</encoding>  
                    <aggregate>true</aggregate>  
                    <charset>${javadoc.encoding}</charset>  
                    <docencoding>${javadoc.encoding}</docencoding>  
                    <skip>${maven.javadoc.skip}</skip> 
                </configuration>  
                <executions> 
                    <execution> 
                        <id>attach-javadocs</id>  
                        <phase>package</phase>  
                        <goals> 
                            <goal>jar</goal> 
                        </goals>  
                        <configuration> 
                            <additionalparam>-Xdoclint:none</additionalparam> 
                        </configuration> 
                    </execution> 
                </executions> 
            </plugin>  
            <!--Maven GPG插件用于使用以下配置对组件进行签名-->  
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-gpg-plugin</artifactId>  
                <version>3.0.1</version>  
                <executions> 
                    <execution> 
                        <id>sign-artifacts</id>  
                        <phase>verify</phase>  
                        <goals> 
                            <goal>sign</goal> 
                        </goals> 
                    </execution> 
                </executions> 
            </plugin>  
            <!--Nexus Staging Maven插件是将组件部署到OSSRH并将其发布到Central Repository的推荐方法-->  
            <plugin> 
                <groupId>org.sonatype.plugins</groupId>  
                <artifactId>nexus-staging-maven-plugin</artifactId>  
                <version>1.6.7</version>  
                <extensions>true</extensions>  
                <configuration> 
                    <serverId>sonatype_account</serverId>  
                    <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>  
                    <autoReleaseAfterClose>true</autoReleaseAfterClose> 
                </configuration> 
            </plugin> 
        </plugins> 
    </build> 
</project>
