<?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>cangariza</artifactId>
    <version>1.6.0.RELEASE</version>
    <name>Foxnic-Cangariza</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.6.0.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.0.RELEASE</foxnic.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.8.RELEASE</version>
        </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.CangariZa { 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.KPz *; }</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>
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>Releases</name>
            <url>http://47.92.240.43:9091/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshot</id>
            <name>Snapshot</name>
            <url>http://47.92.240.43:9091/repository/maven-releases/</url>
        </snapshotRepository>
    </distributionManagement>
    <repositories>
        <repository>
            <id>releases</id>
            <name>Releases</name>
            <url>http://47.92.240.43:9091/repository/maven-releases/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
        <repository>
            <id>snapshots</id>
            <name>Snapshots</name>
            <url>http://47.92.240.43:9091/repository/maven-snapshots/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>releases</id>
            <name>Releases</name>
            <url>http://47.92.240.43:9091/repository/maven-releases/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</project>
