<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor
        xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd"
        name="${rootArtifactId}"
        xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <!-- ================= 模板属性 ================= -->
    <requiredProperties>

        <!-- 应用标识，一般与 ${artifactId} 相同 -->
        <requiredProperty key="appId">
            <defaultValue>${artifactId}</defaultValue>
        </requiredProperty>

        <!-- 包路径 -->
        <requiredProperty key="package">
            <defaultValue>${groupId}.${appId}</defaultValue>
        </requiredProperty>

        <!-- 上下文路径，一般与 appId 相同 -->
        <requiredProperty key="contextPath">
            <defaultValue>${appId}</defaultValue>
        </requiredProperty>

        <!-- 启动类名 -->
        <requiredProperty key="StartClassName">
            <defaultValue>ShoulderApplication</defaultValue>
        </requiredProperty>

        <!-- 类的作者 -->
        <requiredProperty key="author">
            <defaultValue>shoulder</defaultValue>
        </requiredProperty>

        <requiredProperty key="gitignore">
            <defaultValue>.gitignore</defaultValue>
        </requiredProperty>

        <requiredProperty key="gitattributes">
            <defaultValue>.gitattributes</defaultValue>
        </requiredProperty>

    </requiredProperties>

    <!-- ================= 外层模块文件 ================= -->
    <fileSets>
        <fileSet filtered="true" encoding="UTF-8">
            <directory></directory>
            <includes>
                <include>README.md</include>
            </includes>
        </fileSet>

        <fileSet encoding="UTF-8">
            <directory></directory>
            <includes>
                <include>.editorconfig</include>
                <include>__gitattributes__</include>
                <include>__gitignore__</include>
                <include>CHANGELOG.MD</include>
                <include>LICENSE</include>
                <include>img/**</include>
            </includes>
        </fileSet>
    </fileSets>

    <!-- ================= 模块结构 ================= -->
    <modules>
        <module id="${rootArtifactId}-api" dir="__rootArtifactId__-api" name="${rootArtifactId}-api">
            <fileSets>
                <fileSet filtered="true" packaged="true" encoding="UTF-8">
                    <directory>src/main/java</directory>
                </fileSet>

                <fileSet encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </fileSet>

                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/test/java</directory>
                </fileSet>
            </fileSets>
        </module>

        <module id="${rootArtifactId}-infrastructure" dir="__rootArtifactId__-infrastructure" name="${rootArtifactId}-infrastructure">

            <modules>
                <module id="${rootArtifactId}-storage" dir="__rootArtifactId__-storage" name="${rootArtifactId}-storage">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>
                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>

                <module id="${rootArtifactId}-storage-mysql" dir="__rootArtifactId__-storage-mysql"
                        name="${rootArtifactId}-storage-mysql">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>
                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>


                <module id="${rootArtifactId}-cache" dir="__rootArtifactId__-cache" name="${rootArtifactId}-cache">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>
                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>

                <module id="${rootArtifactId}-cache-memory" dir="__rootArtifactId__-cache-memory"
                        name="${rootArtifactId}-cache-memory">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>
                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>

                <module id="${rootArtifactId}-cache-redis" dir="__rootArtifactId__-cache-redis"
                        name="${rootArtifactId}-cache-redis">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>
                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>

            </modules>
        </module>


        <module id="${rootArtifactId}-reference" dir="__rootArtifactId__-reference" name="${rootArtifactId}-reference">

            <modules>
                <module id="${rootArtifactId}-reference-adaptor" dir="__rootArtifactId__-reference-adaptor" name="${rootArtifactId}-reference-adaptor">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>
                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>

                <module id="${rootArtifactId}-reference-xxx" dir="__rootArtifactId__-reference-xxx"
                        name="${rootArtifactId}-reference-xxx">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>
                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>
                    </fileSets>
                </module>


            </modules>
        </module>


        <module id="${rootArtifactId}-core" dir="__rootArtifactId__-core" name="${rootArtifactId}-core">
            <fileSets>
                <fileSet filtered="true" packaged="true" encoding="UTF-8">
                    <directory>src/main/java</directory>
                </fileSet>

                <fileSet encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </fileSet>

                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/test/java</directory>
                </fileSet>
            </fileSets>
        </module>

        <module id="${rootArtifactId}-modules" dir="__rootArtifactId__-modules" name="${rootArtifactId}-modules">

            <modules>
                <module id="${rootArtifactId}-xxx" dir="__rootArtifactId__-xxx" name="${rootArtifactId}-xxx">
                    <fileSets>
                        <fileSet filtered="true" packaged="true" encoding="UTF-8">
                            <directory>src/main/java</directory>
                        </fileSet>

                        <fileSet encoding="UTF-8">
                            <directory>src/main/resources</directory>
                            <includes>
                                <include>**/*</include>
                            </includes>
                        </fileSet>

                        <fileSet filtered="true" encoding="UTF-8">
                            <directory>src/test/java</directory>
                        </fileSet>
                    </fileSets>
                </module>

            </modules>
        </module>

        <module id="${rootArtifactId}-provider" dir="__rootArtifactId__-provider" name="${rootArtifactId}-provider">
            <fileSets>
                <fileSet filtered="true" packaged="true" encoding="UTF-8">
                    <directory>src/main/java</directory>
                </fileSet>

                <fileSet encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </fileSet>

                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/test/java</directory>
                </fileSet>
            </fileSets>
        </module>

        <module id="${rootArtifactId}-web" dir="__rootArtifactId__-web" name="${rootArtifactId}-web">
            <fileSets>
                <fileSet filtered="true" packaged="true" encoding="UTF-8">
                    <directory>src/main/java</directory>
                </fileSet>

                <fileSet encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </fileSet>

                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/test/java</directory>
                </fileSet>
            </fileSets>
        </module>

        <module id="${rootArtifactId}-start" dir="__rootArtifactId__-start" name="${rootArtifactId}-start">
            <fileSets>
                <fileSet filtered="true" packaged="true" encoding="UTF-8">
                    <directory>src/main/java</directory>
                </fileSet>

                <fileSet encoding="UTF-8">
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </fileSet>

                <fileSet filtered="true" encoding="UTF-8">
                    <directory>src/test/java</directory>
                </fileSet>
            </fileSets>
        </module>


    </modules>

</archetype-descriptor>
