1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ace-platform-skyve

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Добро пожаловать в Skyve!

Этот репозиторий представляет собой реализацию спецификации фреймворка Skyve на Java.

Содержание

Что такое Skyve?

Skyve — это открытая низкокодовая платформа, которая предоставляет доступ ко всем ключевым возможностям, необходимым для создания сложных, надёжных и масштабируемых облачных решений.

Skyve не зависит от платформы/операционной системы, работает со всеми распространёнными типами баз данных и доступен через все распространённые браузеры и устройства.

Включая и интегрируя ряд других технологий с открытым исходным кодом для обработки постоянства, богатого пользовательского интерфейса, безопасности, навигации, отчётности, заданий, контента, пространственной интеграции и мобильных устройств, Skyve предоставляет платформу со всеми необходимыми технологиями для поддержки стандарта Skyve для корпоративных приложений.

Skyve также предоставляет сложную проверку и высокоуровневый API, чтобы вы могли создавать мощные корпоративные SaaS-решения.

В любое время можно разветвляться в «традиционную» разработку без ограничений, но со всеми преимуществами API и интегрированной платформы.

Skyve поддерживает пространственные концепции изначально с MySQL (и MariaDB), SQL Server, Postgres и H2 — Oracle находится в стадии бета-тестирования. В противном случае должно работать практически всё, что поддерживается Hibernate (но мы не тестировали их все!).

Для получения более подробной информации о платформе и её возможностях посетите домашнюю страницу платформы — www.skyve.org.

Skyve создан компанией Biz Hub Australia и мы предлагаем ряд соглашений о поддержке, если это необходимо. Или используйте его бесплатно, без обязательств.

Вклад

Мы приветствуем новые вклады в проект, даже небольшие. Пожалуйста, обратитесь к нашим рекомендациям по вкладу для получения информации о внесении вклада в Skyve.

Вопросы

Если вы обнаружили ошибку или хотите запросить новую функцию, пожалуйста, создайте проблему GitHub.

Если вам нужна помощь в начале работы с Skyve или его расширении, пожалуйста, свяжитесь с нами в Slack. Кто-то из сообщества или разработчик Skyve будет рад помочь. Или воспользуйтесь тегом skyve на StackOverflow и попросите там помощи.

Начало работы

Веб-сайт платформы Skyve (https://skyve.org/) содержит обучающие видеоролики, ссылки на подробное руководство по разработке, учебник Skyve, а также поваренную книгу.

Учебник Skyve

Этот учебник показывает, как создать пример приложения с помощью Foundry и без кода, настроить среду разработки и расширить её с помощью низкокодового подхода, и, наконец, добавить более продвинутую логику с использованием кода.

Руководство пользователя

Руководство пользователя доступно по адресу https://skyvers.github.io/skyve-user-guide/. Руководство пользователя предназначено для конечных пользователей приложений Skyve и описывает, как перемещаться по пользовательскому интерфейсу и использовать встроенные функции, поставляемые с Skyve.

Руководство по разработке

Руководство по разработке доступно по адресу github.com/skyvers/skyve-dev-guide. Оно содержит подробную документацию, охватывающую архитектуру и руководящие принципы фреймворка, а также объясняет все функции и способы их использования. Skyve Cookbook

The Skyve Cookbook доступен по адресу github.com/skyvers/skyve-cookbook. Здесь содержатся примеры кода для продвинутого использования, такие как конфигурация REST API и советы по устранению неполадок.

Создание нового проекта Skyve

Мы рекомендуем начать работу со Skyve с помощью Skyve Foundry — https://foundry.skyve.org/foundry.

Skyve Foundry предоставляет инструмент создания проектов «наведи и щёлкни»: вы можете быстро объявить модель данных для своего проекта, развернуть и протестировать проект с помощью сервера пробного использования Skyve Foundry.

После создания проекта в Skyve Foundry вы можете использовать функцию совместной работы, чтобы подключить Skyve Foundry к защищённому репозиторию git-кода, а затем продолжить вносить изменения, используя Skyve Foundry или предпочитаемую интегрированную среду разработки (IDE) (Eclipse, IntelliJ и т. д.) в вашей локальной инфраструктуре разработки.

Использование Skyve Foundry для создания вашего проекта не помешает вам развернуть созданное приложение на собственной инфраструктуре, если вы предпочитаете это, но позволит быстро развернуть и протестировать ваше приложение. Вы также можете экспортировать свой проект в любое время.

Обзор

  1. Создайте свой проект с помощью Skyve Foundry или с помощью инструмента создания проектов Skyve:
    • для Skyve Foundry создайте новый проект репозитория git (через github или gitlab и т.д.) и установите URL репозитория на вкладке совместной работы в Skyve Foundry, затем отправьте свой проект в репозиторий (видеоинструкции доступны по ссылке https://youtu.be/G3OQu5PeUn8);
    • для инструмента создания проектов создайте новый проект Skyve, загрузите его и получите ссылку на файл по электронной почте (видеоинструкции доступны по ссылке https://youtu.be/DkdJ7ROYoxc).
  2. Импортируйте проект как maven-проект и запустите конфигурацию запуска Generate Domain.
  3. Настройте файлы свойств приложения .json и файлов источника данных -ds.xml и поместите их в папку развёртывания Wildfly. В файле настроек .json вам нужно будет (как минимум) указать местоположение, где Skyve будет хранить «контент», и указать строку идентификатора среды, чтобы иметь возможность получить его с учётными данными начальной загрузки (также указанными в файле .json).
  4. Войдите в своё приложение по адресу localhost:8080/<имя_проекта> с вашими учётными данными для начальной загрузки и начните использовать приложение без кода.

Подробные инструкции

Перед началом работы

Эти инструкции предполагают использование Eclipse с установленным плагином JBoss Server Tools и Wildfly в качестве сервера приложений.

  • Установите Java 11+ JDK для вашей операционной системы.
  • Установите Eclipse или альтернативную интегрированную среду разработки на основе Java.
  • Установите JBoss Wildfly — наши инструкции предназначены для Wildfly 20+, но вы можете использовать более старые версии и другие серверы приложений, если знакомы с конфигурацией.

Создание проекта с помощью Skyve Foundry

  • Перейдите на сайт https://foundry.skyve.org/foundry и зарегистрируйтесь.
  • Войдите в свою учётную запись.
  • На вкладке «Опишите» введите название и описание вашего приложения.
  • На вкладке «Дизайн» создайте документы и атрибуты.
  • На вкладке «Настроить» загрузите логотип и значки и выберите из доступных тем.
  • На вкладке «Развертывание» введите пароль для учётной записи пользователя настройки, затем разверните своё приложение.
  • На вкладке «Совместная работа» введите URL-адрес вашего репозитория кода git и отправьте свой проект в этот репозиторий. Затем вы можете извлечь свой проект в локальную среду разработки. Видеоинструкции доступны с помощью значка «Как начать» в строке заголовка Skyve Foundry.

Создание проекта с использованием инструмента создания проектов Skyve

  • Перейдите на сайт https://foundry.skyve.org/foundry/project.xhtml.
  • Введите действующий адрес электронной почты.
  • Введите название проекта.
  • Введите имя клиента (должно быть одной строкой, например myOrganisationName, или установите значение skyve, если не уверены).
    • Клиент является основным понятием для приложений Skyve для поддержки мультитенантных SaaS-приложений. Поскольку Skyve предназначен и разработан для мультиарендности, предполагается, что данные существуют в контексте клиента (т. е. арендатора). Чтобы узнать больше о концепции Клиента и мультитенантных приложениях, см. Выберите тип базы данных (и диалект)

H2 — это база данных на основе файлов, которая идеально подходит для быстрого прототипирования или начала работы, если вы не уверены. Другие диалекты потребуют установки соответствующего ядра базы данных или доступа к сетевому серверу БД этого типа.

Если у вас есть файл Skyve Script, предоставьте его здесь. Skyve Script — это простой стандарт разметки для объявления моделей предметной области, достаточный для создания приложений Skyve без кода. Нажмите кнопку «Создать проект».

Импорт проекта

  • Через несколько секунд на указанный адрес электронной почты будет отправлено электронное письмо со ссылкой для загрузки артефактов проекта в виде одного zip-файла. Нажмите на ссылку, чтобы загрузить файл.
  • После загрузки файла разархивируйте содержимое в папку рабочей области разработки.
  • В Eclipse выберите «Файл» -> «Импортировать» и выберите «Существующие проекты Maven», а затем следуйте указаниям мастера, выбрав каталог, который вы разархивировали из электронного письма.
  • Чтобы собрать проект и подготовить его к запуску, в меню «Выполнить» выберите «Конфигурации запуска». В разделе «Сборка Maven» выберите конфигурацию запуска «Сгенерировать домен» для вашего проекта. Для запуска проекта Skyve должен сгенерировать необходимые классы домена, а Maven обеспечит включение всех связанных компонентов с открытым исходным кодом.
  • Как только генерация домена будет завершена, ваше приложение будет готово к развёртыванию.

Настройка сервера приложений и базы данных

  • Чтобы настроить Wildfly для развёртывания приложения:
    • Скопируйте файлы конфигурации проекта в wildfly/standalone/deployments/
      • Корневой каталог проекта содержит файл источника данных (projectName-ds.xml) и файл настроек экземпляра json (projectName.json).
      • Файл источника данных объявляет имя источника данных для подключения к выбранному ядру базы данных. Строка соединения JDBC и связанные настройки учётных данных должны быть действительны для выбранного ядра базы данных. Skyve создаст все необходимые таблицы, поэтому требуется пустая база данных. Для базы данных H2 здесь будет указан путь к местоположению файла базы данных.
      • Файл настроек json содержит настройки, специфичные для экземпляра приложения, и включает учётные данные для пользователя boostrap, чтобы вы могли начать работу.
      • Вам нужно будет настроить путь content: { directory: в вашем JSON как допустимый каталог в вашей файловой системе. Здесь будут храниться и индексироваться Elastic Search любые загруженные файлы. Создайте новый каталог в своей файловой системе по этому пути, Skyve не создаст его за вас.
    • Вам потребуется создать каталог addins либо в каталоге содержимого (где Skyve будет искать по умолчанию), либо настроить addins: { directory: внутри вашего projectName.json, указав местоположение каталога addins.
    • Скопируйте skyve-content.zip из целевого каталога вашего проекта в каталог addins (если его нет в целевом каталоге, это можно запустить, выполнив компиляцию maven или установку maven).
    • Если вы выбрали ядро базы данных, отличное от H2, вам потребуется создать схему (MySQL) или имя базы данных (MSSQL), соответствующее указанному вами projectName. Если вы хотите использовать другое имя базы данных или схемы, вам необходимо соответствующим образом изменить файл projectName-ds.xml в папке развёртывания.
      • Возможно, вам также потребуется соответствующим образом настроить Wildfly — например, для MSSQL вам потребуется поместить sqljdbc42.jar и sqljdbc_auth.dll в \wildfly\modules\system\layers\base\com\microsoft\sqlserver\main\.
    • Чтобы развернуть приложение, щёлкните правой кнопкой мыши узел сервера Wildfly в окне сервера Eclipse и добавьте свой проект. Затем запустите сервер с помощью инструмента запуска на панели инструментов окна сервера.

Вход

  • Откройте предпочитаемый браузер и перейдите по адресу localhost:8080/<projectName>.
  • Войдите под учётными данными, указанными в файле настроек json в разделе boostrap (убедитесь, что вы указали строку идентификатора среды — например, identifier: "dev").
  • После входа используйте раздел «Администратор безопасности» модуля администратора, чтобы создать группу пользователей. Необходимые роли и создание пользователей по мере необходимости.

Обратите внимание, что пользователь bootstrap действует только в том случае, если в вашей базе данных нет пользователя с таким же именем. Если у вас уже есть пользователь bootstrap в базе данных, вы можете:

  • усечь базу данных и начать заново;
  • добавить роль пользователю через модуль администратора;
  • создать группу безопасности с необходимыми ролями и назначить членство своему пользователю.

В любом из последних двух случаев вам потребуется выйти и снова войти, чтобы изменения вступили в силу.

Быстрый старт

Основные понятия

Создание приложений с помощью Skyve включает в себя некоторые новые концепции и имеет кривую обучения. Прежде чем мы начнём создавать приложение, полезно иметь хотя бы базовое понимание того, из чего состоит приложение.

Приложение Skyve Java без кода можно создать в простейшей форме, указав только метаданные (в виде файлов XML). Все приложения Skyve включают модуль admin, а дополнительные модули определяются для конкретной функциональности приложения. Структура метаданных высокого уровня следует следующему шаблону:

  • src/main/java/
    • modules
      • admin
      • newModule
        • Document
          • Document.xml
          • DocumentBizlet.java
          • actions
            • Action.java
          • views
            • edit.xml

Модули

Модули определяют группировку функциональности приложения и соответствуют пунктам верхнего уровня меню. Каждый каталог модуля содержит файл module.xml, а также подкаталоги для каждого документа.

Документы

Skyve использует термин «документ», чтобы указать на бизнес-ориентированный характер объектов приложения. Их можно рассматривать как сущности или на упрощённом уровне они соответствуют таблице базы данных (не всегда так). Документы могут отображаться как пункты меню дочернего уровня родительского модуля и используются для определения новых представлений в вашем приложении.

Представления

Skyve автоматически генерирует экран пользовательского интерфейса (представление) для каждого документа. Файлы представления определены для переопределения сгенерированного представления, если требуется настройка. Файлы представлений находятся в каталоге views родительского документа.

Более подробные объяснения этих концепций см. в Руководстве по разработке Skyve.

Простой пример

В этом примере мы собираемся создать новый модуль и документ. Предполагается, что были выполнены шаги Создание нового проекта Skyve, и у вас есть новый проект Skyve в вашей IDE, который строится и развёртывается.

Добавление нового модуля

Наш проект поставляется с модулем admin, который включает в себя множество основных системных функций, но мы добавим новый модуль для хранения нашего пользовательского домена.

Выполните следующую команду Maven для своего проекта:

mvn skyve:addModule

При запросе имени модуля введите todo.

Возможно, вам потребуется обновить рабочее пространство IDE, но вы должны увидеть новый пакет todo и файл todo.xml. Эта команда также добавила модуль todo в наш файл customer.xml. Просмотрите файл todo.xml и убедитесь, что он пока довольно пуст, поэтому давайте добавим базовое определение, чтобы включить документ, который мы собираемся добавить.

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="http://www.skyve.org/xml/module" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" title="todo" name="todo" xsi:schemaLocation="http://www.skyve.org/xml/module ../../schemas/module.xsd" prototype="true">
    <homeRef>list</homeRef>
    <homeDocument>ToDo</homeDocument>
    <documents>
        <document ref="ToDo"/>
    </documents>
    <roles>
        <role name="Maintainer">
            <description>Create, edit and delete permission within the ToDo module.</description>
            <privileges>
                <document name="ToDo" permission="CRUDC"/>
            </privileges>
        </role>
    </roles>
    <menu>
        <list document="ToDo" name="All ToDos">
            <role name="Maintainer"/>
        </list>
    </menu>
</module>

Это базовое определение модуля указывает домашний документ (целевую страницу), какие документы находятся в модуле, роли и их разрешения. Разрешения для документа и меню

Обратите внимание: в этом примере модуле задано prototype="true". Это означает, что Skyve сделает некоторые базовые предположения, чтобы упростить работу пользователя. Для получения дополнительной информации см. skyvers.github.io/skyve-dev-guide/modules/#prototype-mode.

Добавление нового документа

Выполните следующую команду Maven в вашем проекте:

mvn skyve:addDocument

При появлении запроса на ввод имени модуля введите todo, а при запросе имени документа — ToDo.

Если потребуется, обновите рабочее пространство ещё раз. После этого вы должны увидеть каталог ToDo в пакете todo и файл ToDo.xml. В соответствии с конвенцией Skyve имена модулей записываются со строчной буквы или через дефисы, а имена документов — с заглавной.

Осмотрев наш новый ToDo.xml, вы увидите, что он почти пуст. Давайте добавим в него атрибуты для хранения данных.

<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://www.skyve.org/xml/document" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="ToDo" xsi:schemaLocation="http://www.skyve.org/xml/document ../../../schemas/document.xsd">
    <persistent name="TODO_ToDo"/>
    <singularAlias>ToDo</singularAlias>
    <pluralAlias>ToDos</pluralAlias>
    <bizKey expression="{description}"/>
    <attributes>
        <text name="description" required="true">
            <displayName>Description</displayName>
            <length>200</length>
        </text>
        <boolean name="complete">
            <displayName>Complete</displayName>
            <defaultValue>false</defaultValue>
        </boolean>
    </attributes>
</document>

Это базовое определение документа указывает постоянное имя (таблицу базы данных), бизнес-ключ, единичный и множественный псевдонимы (для отображения в списке и в режиме редактирования одного элемента) и атрибуты, составляющие этот документ.

Генерация домена

Выполните следующую команду Maven в своём проекте:

mvn skyve:generateDomain

Она проверит все метаданные вашего проекта и выдаст предупреждение, если есть какие-либо ошибки. Если всё в порядке, она сгенерирует код приложения на основе метаданных, и вы увидите сообщение об успешной сборке.

Теперь вы можете запустить свой сервер и развернуть приложение для тестирования.

После развёртывания вам нужно будет предоставить своему пользователю роль «Maintainer». Вы можете сделать это, добавив роль пользователю или создав группу безопасности с этой ролью и назначив членство в группе этому пользователю. Затем выйдите из системы. Новые разрешения роли вступят в силу только после того, как вы снова войдёте в систему.

Когда вы войдёте обратно, вы увидите меню модуля todo с дочерним пунктом меню «Все ToDos». Нажав на «Все ToDos», а затем на кнопку +, вы сможете создать новый ToDo. Это сгенерированное представление Skyve, которое содержит два атрибута документа: description и complete.

Команды Maven для Skyve

Новые проекты, созданные на веб-сайте, поставляются с предварительно настроенными конфигурациями запуска Maven для Eclipse. Это стандартные цели maven с использованием плагина Skyve maven, которые можно запускать из командной строки или другой IDE. Здесь описаны 6 основных целей:

Генерация домена

mvn skyve:generateDomain

Генерация домена проверяет и компилирует метаданные (XML-файлы) в вашем проекте и проверяет, находится ли домен приложения в допустимом состоянии. Ошибки разработчика выводятся на консоль, и, если генерация прошла успешно, домен будет скомпилирован для создания файлов Java-домена и модульных тестов.

Создание представления для редактирования

mvn skyve:generateEditView

Для генерации представления редактирования требуются дополнительные параметры: пара ключ-значение module и document. Если для документа не указан edit.xml, Skyve автоматически создаст шаблонное представление, используя атрибуты, указанные в документе. При настройке представления полезно начать с шаблонного представления и расширить его. Эта команда запишет файл generatedEdit.xml в пакет, указанный параметрами модуля и документа.

Генерировать стандартные запросы

mvn skyve:generateDefaultQueries
``` Подобно тому, как есть структурированное представление для редактирования новых документов, когда документы отображаются в списке из меню или в lookupDescription, будет использоваться /default запрос/, который определяет, какие столбцы отображаются. Эта команда Maven может записать все запросы по умолчанию в файл в корне проекта, чтобы любые запросы можно было настроить и включить в ваш module.xml.

### Скрипт Skyve

mvn skyve:script

Это будет искать файл с именем `skyve.md` внутри каталога скрипта в корне вашего проекта. Любые модули и документы, найденные внутри этого файла, будут созданы и добавлены в ваш проект. Для получения дополнительной обратной связи от пользователя это также можно выполнить через пользовательский интерфейс от администратора -> Создатель документа.

### Обновление ресурсов

mvn clean compile war:exploded

В зависимости от того, как вы настроите свой Wildfly, если вы не публикуете изменения во время разработки в `wildfly/standalone/deployments`, вы можете использовать эту команду Maven, чтобы обновить свой локальный каталог `/deployments/` скомпилированным проектом. Затем сканер развёртывания вашего Wildfly можно настроить на отслеживание этого местоположения.

### Локальное развёртывание

mvn compile war:exploded skyve:touch

Это обновляет каталог проекта `/deployments` и создаёт файл `projectName.dodeploy`, указывающий Wildfly перезапустить модуль. Это используется, когда есть какие-либо изменения в Java или модуле, которые не могут быть перезагружены «на горячую».

### Добавление модуля

mvn skyve:newModule

Вам будет предложено ввести имя нового модуля, затем будет создан новый каталог модуля и module.xml с указанным именем. Также будет обновлён ваш customer.xml новым модулем. Обратите внимание: новый модуль не пройдёт генерацию домена, некоторые обязательные поля будут отсутствовать (например, представление по умолчанию).

### Добавление документа

mvn skyve:newDocument

Будет предложено ввести название модуля и нового документа, затем будет создан каталог нового документа и document.xml в правильном расположении в структуре вашего проекта. Новый документ также будет зарегистрирован в модуле.

### Добавление структурированного документа

mvn skyve:newScaffoldedDocument

Выполняет всё, что делает добавление документа, а также создаёт представление для редактирования, классы Bizlet, Factory, Extension и Service в правильном месте в структуре вашего проекта.

### Добавление действия

mvn skyve:newAction

Будет предложено ввести названия модуля, документа и действия, после чего будет создан пустой готовый к добавлению бизнес-логики экшен. Обратите внимание: действие необходимо вручную добавить в представления для редактирования и привилегии в вашем модуле по мере необходимости.

## Обновление версии Skyve
Чтобы обновить проект определённой версией Skyve, вам нужно будет извлечь/проверить проект Skyve (из https://github.com/skyvers/skyve.git) перед следующими шагами, убедившись, что вы извлекаете конкретную версию Skyve, которую хотите получить. Если вы сомневаетесь, извлеките Skyve и проверьте, какая версия получена. Выпуски помечены, поэтому обычно безопаснее всего проверить последний помеченный коммит.

⚠️ **Предупреждение:** прежде чем продолжить, убедитесь, что ваш проект находится под контролем версий, и все файлы зафиксированы локально. Обновление проекта может изменить множество файлов и обновит ваш административный модуль и веб-ресурсы. Любые локальные изменения, внесённые вами, будут перезаписаны и должны быть объединены обратно вручную.

### Настройка цели сборки
Эти инструкции применимы к проектам, созданным с использованием процесса [Создание нового проекта Skyve](#creating-a-new-skyve-project), описанного выше. Если вы создали свой проект вручную, эти шаги могут отличаться.

- Если вы используете Eclipse, создайте новую конфигурацию запуска, установив базовый каталог в рабочую область вашего проекта и установив цель в `skyve:assemble`. После настройки в вашем pom это также можно запустить из командной строки с помощью `mvn skyve:assemble`.
- В файле `pom.xml` вашего проекта обновите свойство `skyve.version`, чтобы оно соответствовало версии Skyve, которую вы извлекли/проверили.
    - Найдите плагин Skyve (поиск по artifactId `skyve-maven-plugin`) и настройте параметр `<skyveDir></skyveDir>` с относительным или абсолютным путём к локальному расположению проекта Skyve на диске (откуда вы извлекли).
    - Установите значение `<customer></customer>`, соответствующее вашему проекту. Заказчик в вашем проекте:
* Сохраните файл `pom.xml`.
* Запустите только что созданную цель сборки, решая все обнаруженные проблемы.
* После успешного выполнения запустите цель генерации домена вашего проекта, решая любые обнаруженные проблемы. 
* Затем запустите модульные тесты вашего проекта и убедитесь, что обновление не повлияло на ожидаемое поведение.
* Выполните сгенерированные тесты проекта.
* Разверните проект локально и проверьте работоспособность всех функций.
* Убедившись в корректной работе, зафиксируйте изменения в проекте.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
LGPL-2.1
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/ace-platform-skyve.git
git@api.gitlife.ru:oschina-mirror/ace-platform-skyve.git
oschina-mirror
ace-platform-skyve
ace-platform-skyve
master