<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>

    <name>geminis-dependency-version</name>
    <description>geminis-dependency-version</description>
    <url>scm:git:git@github.com:allennet/geminis-dependency-version.git</url>

    <groupId>cn.geminis.dependency</groupId>
    <artifactId>geminis-dependency-version</artifactId>
    <version>2021.9.0</version>
    <packaging>pom</packaging>

    <scm>
        <connection>scm:git:git@github.com:allennet/geminis-dependency-version.git</connection>
        <developerConnection>scm:git:git@github.com:allennet/geminis-dependency-version.git</developerConnection>
        <url>scm:git:git@github.com:allennet/geminis-dependency-version.git</url>
    </scm>

    <developers>
        <developer>
            <name>allen</name>
            <email>pudding.net@live.cn</email>
        </developer>
    </developers>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <properties>
        <!--注意版本匹配，使用cloud对应的boot版本-->
        <spring-cloud-version>2020.0.3</spring-cloud-version>
        <spring-boot-version>2.5.4</spring-boot-version>
        <spring-cloud-alibaba-version>2021.1</spring-cloud-alibaba-version>

        <h2-version>1.4.200</h2-version>
        <mysql-version>8.0.25</mysql-version>

        <skywalking-version>8.6.0</skywalking-version>
        <!--        <logback-kafka-appender-version>0.2.0-RC2</logback-kafka-appender-version>-->
        <!--        <logstash-logback-encoder-version>6.4</logstash-logback-encoder-version>-->

        <xstream-version>1.4.11.1</xstream-version>
        <graphql-java-version>16.2</graphql-java-version>
        <bouncycastle-version>1.68</bouncycastle-version>

        <geminis-core-version>1.3.0</geminis-core-version>
        <geminis-crypto-version>1.4.0</geminis-crypto-version>
        <geminis-data-jpa-version>1.1.0</geminis-data-jpa-version>
        <geminis-logging-version>2021.9.0</geminis-logging-version>
        <geminis-web-version>1.2.0</geminis-web-version>
        <geminis-fabric-core-version>1.1.0</geminis-fabric-core-version>
        <geminis-resources-core-version>2021.9.0</geminis-resources-core-version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Spring -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring-boot-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Database -->
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${h2-version}</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-version}</version>
                <scope>runtime</scope>
            </dependency>

            <!-- Logging -->
            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-logback-1.x</artifactId>
                <version>${skywalking-version}</version>
            </dependency>

            <!-- Other -->
            <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>${xstream-version}</version>
            </dependency>
            <dependency>
                <groupId>com.graphql-java</groupId>
                <artifactId>graphql-java</artifactId>
                <version>${graphql-java-version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
                <version>${bouncycastle-version}</version>
            </dependency>

            <!-- Gemini -->
            <dependency>
                <groupId>cn.geminis</groupId>
                <artifactId>geminis-core</artifactId>
                <version>${geminis-core-version}</version>
            </dependency>
            <dependency>
                <groupId>cn.geminis</groupId>
                <artifactId>geminis-data-jpa</artifactId>
                <version>${geminis-data-jpa-version}</version>
            </dependency>
            <dependency>
                <groupId>cn.geminis</groupId>
                <artifactId>geminis-web</artifactId>
                <version>${geminis-web-version}</version>
            </dependency>
            <dependency>
                <groupId>cn.geminis</groupId>
                <artifactId>geminis-logging</artifactId>
                <version>${geminis-logging-version}</version>
            </dependency>
            <dependency>
                <groupId>cn.geminis.crypto</groupId>
                <artifactId>geminis-crypto</artifactId>
                <version>${geminis-crypto-version}</version>
            </dependency>
            <dependency>
                <groupId>cn.geminis.fabric</groupId>
                <artifactId>geminis-fabric-core</artifactId>
                <version>${geminis-fabric-core-version}</version>
            </dependency>
            <dependency>
                <groupId>cn.geminis.resources</groupId>
                <artifactId>geminis-resources-core</artifactId>
                <version>${geminis-resources-core-version}</version>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${spring-boot-version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.8</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>mavenCenter</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <distributionManagement>
        <snapshotRepository>
            <id>mavenCenter</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>mavenCenter</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

</project>

