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

OSCHINA-MIRROR/suninformation-ymate-maven-extension

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

YMP-Maven-Extension (YMP Maven 扩展工具)

Помогает быстро создавать структуру Maven-проектов на основе YMP-фреймворка.

1. Проектные шаблоны

Предлагается пять шаблонов проектов:

  • ymate-archetype-quickstart (quickstart): стандартный Java-проект с интегрированными зависимостями YMP;
  • ymate-archetype-webapp (webapp): JavaWeb-проект, в который уже включены зависимости для WebMVC и полная конфигурация параметров;
  • ymate-archetype-module (module): проект модуля YMP, включающий примеры кода и JUnit-тесты;
  • ymate-archetype-serv (serv): проект сервиса YMP, предоставляющий примеры клиентских и серверных программ TCP, UDP и соответствующую конфигурацию;
  • ymate-archetype-microservice (microservice): многомодульный Maven-проект микросервиса YMP.

Подробнее о создании проекта с помощью шаблона см. здесь.

2. Плагин-команды Maven

Чтобы использовать плагин, необходимо добавить его конфигурацию в файл pom.xml:

<plugin>
    <groupId>net.ymate.maven.plugins</groupId>
    <artifactId>ymate-maven-plugin</artifactId>
    <version>1.0-SNAPSHOT</version>
</plugin>

Команды выполняются в формате:

mvn ymate:<COMMAND> -D<PARAM_1>=<VALUE_1> -D<PARAM_n>=<VALUE_n>

Обратите внимание, что команды должны выполняться в каталоге, где находится файл pom.xml.

Список команд:

Команда Описание
module Генератор кода для модулей на основе интерфейса IModule (полностью заменяет шаблон ymate-archetype-module).
controller Генератор классов контроллеров для WebMVC-модулей.
mapping Генератор методов запросов для контроллеров.
interceptor Генератор классов перехватчиков.
validator Генератор классов валидаторов.
repository Генератор классов хранилищ.
service Генератор классов сервисов.
config Генератор конфигурационных классов.
enpasswd Шифрование строк.
depasswd Расшифровка строк.
tomcat Генератор конфигурации Tomcat.
entity Генератор кода сущностей.
crud Генератор CRUD-кода.
dbquery Генератор SQL-запросов к базе данных.
init Инициализация необходимых файлов конфигурации и структуры каталогов для проектов на основе YMP.
configuration Генератор структуры каталогов конфигурации.

2.1. Подробное описание команд плагина

2.1.1 module: генератор кода для модулей

Используется для генерации кода реализации модулей на основе интерфейса IModule. Полностью заменяет шаблон ymate-archetype-module.

Параметры:

Параметр Обязательный Описание
name Да Имя модуля.
package Нет Пакет модуля по умолчанию: ${project.groupId}.module.

Пример использования:

Создать модуль с именем Demo:

mvn ymate:module -Dname=Demo

Вывод консоли:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ympDemo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:module (default-cli) @ ympDemo ---
[INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/module/IDemo.java
[INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/module/Demo.java
[INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/module/IDemoModuleCfg.java
[INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/module/impl/DefaultModuleCfg.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.504s
[INFO] Finished at: Tue Oct 31 17:12:56 CST 2017
[INFO] Final Memory: 9M/245M
[INFO] ------------------------------------------------------------------------
``` **Перевод текста на русский язык:**

-Dmapping=/user/info -Dmapping.method=post,get
    ```

    控制台输出:

    ```
    Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building ympDemo 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:controller (default-cli) @ ympDemo ---
    [INFO] properties:
    [INFO]  |--controllerName:DemoAction
    [INFO]  |--packageName:net.ymate.demo.controller
    [INFO]  |--singleton:true
    [INFO]  |--transaction:false
    [INFO]  |--mapping:/user/info
    [INFO]    |--method:POST
    [INFO]    |--method:GET
    [INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/controller/DemoAction.java
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 0.377s
    [INFO] Finished at: Tue Oct 31 17:48:20 CST 2017
    [INFO] Final Memory: 8M/245M
    [INFO] ------------------------------------------------------------------------
    ```

##### 2.1.3 `mapping`:контроллер запроса метода генератор

> Используется для добавления кода фрагмента запроса метода к указанному классу контроллера;

- Параметры списка:

| Параметр | Обязательный | Описание |
| --- | --- | --- |
| name | Да | Имя контроллера |
| package | Нет | Пакет контроллера по умолчанию: `${project.groupId}.controller` |
| suffix | Нет | Суффикс имени контроллера, по умолчанию: `Controller` |
| method | Да | Название метода контроллера |
| method.param | Нет | Параметры метода контроллера, по умолчанию: пусто, несколько значений разделяются `,`; можно указать способ получения значения параметра с помощью `<способ получения>:<имя параметра>` |
| fileUpload | Нет | Добавлять ли аннотацию `@FileUpload` |
| transaction | Нет | Добавлять ли транзакционную аннотацию, по умолчанию: false |
| mapping | Нет | Корневой путь запроса контроллера, по умолчанию: пусто |
| mapping.method | Нет | Способ запроса контроллера, по умолчанию: пусто, разделяется `,`, допустимые значения: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `OPTIONS`, `TRACE` |
| mapping.header | Нет | Заголовок запроса контроллера, по умолчанию: пусто, разделяется `,` |
| mapping.param | Нет | Параметр запроса контроллера, по умолчанию: пусто, разделяется `,` |

- Пример команды:

> Добавить метод __sayHi запроса к классу контроллера с именем DemoAction и добавить параметры username и age, где параметр age будет получен через аннотацию @Pathvariable. Код метода:

@RequestMapping(value = "/sayHi/{age}") public IView __sayHi(@RequestParam String username, @PathVariable String age) throws Exception { return View.textView("mapping: /sayHi/{age}"); }


Выполнить команду:

mvn ymate:mapping -Dname=Demo -Dsuffix=Action -Dmapping=/sayHi/{age} -Dmethod=sayHi -Dmethod.param=username,path:age


Контрольный вывод:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building ympDemo 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:mapping (default-cli) @ ympDemo --- [INFO] properties: [INFO] |--controllerName:DemoAction [INFO] |--fileUpload:false [INFO] |--transaction:false [INFO] |--method:__sayHi [INFO] |--param:username [INFO] |--param:path:age [INFO] |--mapping:/sayHi/{age} [INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/controller/DemoAction.java [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.482s [INFO] Finished at: Wed Nov 01 22:27:58 CST 2017 [INFO] Final Memory: 11M/309M [INFO] ------------------------------------------------------------------------


##### 2.1.4 `interceptor`:перехватчик класса генератор

> Используется для генерации кода класса перехватчика;

- Список параметров:

|Параметр | Обязательный | Описание|
|---|---|---|
|name | Да | Наименование перехватчика |
|package | Нет | Пакет перехватчика по умолчанию: `${project.groupId}.intercept` |
|suffix | Нет | Суффикс класса перехватчика, по умолчанию: Interceptor |

Пример команды:
Создать перехватчик с именем DemoInterceptor. Код:

public class DemoInterceptor extends AbstractInterceptor {

@Override
protected Object __before(InterceptContext context) throws Exception {
    return null;
}

@Override **2.1.6 repository: генератор класса хранилища**

Используется для генерации кода класса хранилища.

  • Список параметров: | Параметр | Обязательный | Описание | | --- | --- | --- | | name | Да | Имя класса хранилища | | package | Нет | Пакет класса хранилища, значение по умолчанию — ${project.groupId}.repository | | suffix | Нет | Суффикс имени класса хранилища, значение по умолчанию — Repository |

Пример команды:

mvn ymate:repository -Dname=Demo

Вывод консоли:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ympDemo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:repository (default-cli) @ ympDemo ---
[INFO] properties:
[INFO]  |--repositoryName:DemoRepository
[INFO]  |--packageName:net.ymate.demo.repository
[INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/repository/DemoRepository.java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.438s
[INFO] Finished at: Wed Nov 01 22:48:42 CST 2017
[INFO] Final Memory: 9M/245M
[INFO] ------------------------------------------------------------------------
``` |---|---|---|
|name|Является|Именем хранилища|
|package|Нет|Имя пакета хранилища, значение по умолчанию: `${project.groupId}.repository`|
|suffix|Нет|Суффикс имени класса хранилища, значение по умолчанию: `Repository`|
|transaction|Нет|Добавлять ли аннотацию транзакции, значение по умолчанию: `false`|
|config|Нет|Включать ли объект конфигурации, значение по умолчанию: `false`|
|interface|Нет|Использовать ли режим интерфейса, значение по умолчанию: `false`|  

**Пример команды:**

Создать хранилище с именем `DemoRepository`, включить объект конфигурации и режим интерфейса.

public interface IDemoRepository { IResultSet<Object[]> execSql(String hash, IResultSet<Object[]> results) throws Exception; List<Object[]> execQuery(String hash, IResultSet<Object[]>... results) throws Exception; }

@Repository @Transaction public class DemoRepository implements IDemoRepository, IRepository {

@Inject
private DemoRepositoryConfig __config;

@Override
public IConfiguration getConfig() {
    return __config;
}

/**
* Пользовательский SQL
*/
@Repository("select * from table1 where hash = ${hash}")
public IResultSet<Object[]> execSql(String hash, IResultSet<Object[]> results) throws Exception {
    return results;
}

/**
* Чтение SQL из файла конфигурации
*/
@Repository(item = "demo_query")
public List<Object[]> execQuery(String hash, IResultSet<Object[]>... results) throws Exception {
    return results[0].getResultData();
}

}


Выполнить команду:

mvn ymate:repository -Dname=Demo -Dtransaction=true -Dconfig=true -Dinterface=true


Вывод консоли:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building ympDemo 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:repository (default-cli) @ ympDemo --- [INFO] properties: [INFO] |--repositoryName:DemoRepository [INFO] |--packageName:net.ymate.demo.repository [INFO] |--transaction:true [INFO] |--withConfig:true [INFO] |--withInterface:true [INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/repository/IDemoRepository.java [INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/repository/impl/DemoRepository.java [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.438s [INFO] Finished at: Wed Nov 01 23:36:27 CST 2017 [INFO] Final Memory: 9M/245M [INFO] ------------------------------------------------------------------------


#### 2.1.7 service: генератор классов сервисного слоя

Используется для генерации кода классов сервисного слоя.

*Параметры:*

|Параметр|Обязательный|Описание|
|---|---|---|
|name|Да|Имя класса сервиса|
|package|Нет|Пакет класса сервиса, значение по умолчанию: `${project.groupId}.service`|
|suffix|Нет|Суффикс имени класса сервиса, значение по умолчанию: `Service`|
|transaction|Нет|Добавить ли аннотацию транзакции, значение по умолчанию: `false`|

Пример команды:

Создать класс сервиса с именем `DemoService` и интерфейс к нему.

public interface IDemoService { }

@Bean public class DemoService implements IDemoService { }


Выполнить команду:

mvn ymate:service -Dname=Demo


Вывод консоли:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building ympDemo 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:service (default-cli) @ ympDemo --- [INFO] properties: [INFO] |--serviceName:DemoService [INFO] |--packageName:net.ymate.demo.service [INFO] |--transaction:false [INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/service/IDemoService.java [INFO] Output file: /Users/.../ympDemo/src/main/java/net/ymate/demo/service/impl/DemoService.java [INFO] ------------------------------------------------------------------------ JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

[ИНФОРМАЦИЯ] Сканирование проектов... [ИНФОРМАЦИЯ] [ИНФОРМАЦИЯ] ------------------------------------------------------------------------ [ИНФОРМАЦИЯ] Создание ympDemo 1.0-SNAPSHOT [ИНФОРМАЦИЯ] ------------------------------------------------------------------------ [ИНФОРМАЦИЯ] [ИНФОРМАЦИЯ] --- ymate-maven-plugin:1.0-SNAPSHOT:enpasswd (default-cli) @ ympDemo --- [ИНФОРМАЦИЯ] Используйте ключ: 16296b50a6db0d0bd45d2e5f84fcdd76 [ИНФОРМАЦИЯ] Зашифрованный пароль: D3ytOQrD63BlKGDMJnaYsQ== [ИНФОРМАЦИЯ] ------------------------------------------------------------------------ [ИНФОРМАЦИЯ] BUILD SUCCESS [ИНФОРМАЦИЯ] ------------------------------------------------------------------------ [ИНФОРМАЦИЯ] Общее время: 0,515 с [ИНФОРМАЦИЯ] Завершено в: четверг, 2 ноября, 09:00:35 CST 2017 [ИНФОРМАЦИЯ] Финальная память: 11M/245M [ИНФОРМАЦИЯ] ------------------------------------------------------------------------

2.1.10 depasswd: расшифровка строки

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

  • Список параметров: | Параметр | Обязательный | Описание | | --- | --- | --- | | passwd | Да | Зашифрованная строка | | passkey | Нет | Пользовательский ключ |

  • Пример команды:

Для расшифровки зашифрованной строки D3ytOQrD63BlKGDMJnaYsQ== выполните команду:

mvn ymate:depasswd -Dpasswd=D3ytOQrD63BlKGDMJnaYsQ==

Вывод консоли:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ympDemo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:depasswd (default-cli) @ ympDemo ---
[INFO] Use passkey: 16296b50a6db0d0bd45d2e5f84fcdd76
[INFO] Расшифрованный пароль: abc12345678
[ИНФОРМАЦИЯ] ------------------------------------------------------------------------
[ИНФОРМАЦИЯ] BUILD SUCCESS
[ИНФОРМАЦИЯ] ------------------------------------------------------------------------
[ИНФОРМАЦИЯ] Общее время: 0,459 с
[ИНФОРМАЦИЯ] Завершено: в четверг, 2 ноября, 09:03:51 CST 2017
[ИНФОРМАЦИЯ] Финальная память: 11M/245M
[ИНФОРМАЦИЯ] ------------------------------------------------------------------------

**2.1.11 tomcat: генератор конфигурации Tomcat**

Создаёт структуру каталогов и файлы конфигурации на основе Tomcat для службы JVM, в настоящее время поддерживает версии Tomcat: 6, 7, 8, 9;

- Список параметров:
|Параметр | Обязательный| Описание|
|---|---|---|
|serviceName| Да| Имя службы (если используется для регистрации службы в Windows)|
|catalinaHome| Да| Путь установки программного обеспечения Tomcat, значение по умолчанию: ${CATALINA_HOME}|
|catalinaBase| Нет| Расположение созданного сервиса, значение по умолчанию: текущий путь|
|hostName| Нет| Имя хоста, значение по умолчанию: localhost|
|hostAlias| Нет| Псевдоним, значение по умолчанию: пусто|
|tomcatVersion| Нет| Указывает версию пакета Tomcat, значение по умолчанию: 7 (поддерживает 6, 7, 8, 9, должно соответствовать версии, указанной в catalinaHome)|
|serverPort| Нет| Порт сервера (порт Server Tomcat), значение по умолчанию: 8005|
|connectorPort| Нет| Контейнерный порт (порт Connector Tomcat), значение по умолчанию: 8080|
|ajp| Нет| Включить ли конфигурацию AJP, значение по умолчанию: false|
|ajpHost| Нет| Хост AJP, значение по умолчанию: localhost|
|ajpPort| Нет| Порт AJP, значение по умолчанию: 8009|

- Пример команды:

Создайте службу с именем DemoServer на основе Tomcat7.x:

Выполните команду:

mvn ymate:tomcat -DserviceName=DemoServer -DcatalinaHome=/Users/.../apache-tomcat-7.0.54 -DcatalinaBase=/Users/.../Temp


Консольный вывод:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building ympDemo 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:tomcat (default-cli) @ ympDemo --- [INFO] Служба Tomcat: DemoServer [INFO] |--CatalinaHome: /Users/.../apache-tomcat-7.0.54 [INFO] |--CatalinaBase: /Users/.../Temp [INFO] |--HostName: localhost [INFO] |--HostAlias: [INFO] |--TomcatVersion: 7 [INFO] |--ServerPort: 8005 [INFO] |--ConnectorPort: 8080 [INFO] |--RedirectPort: 8443 [INFO] |--Ajp: false [INFO] Выходной файл: /Users/.../Temp/DemoServer/conf/server.xml [INFO] Выходной файл: /Users/.../Temp/DemoServer/vhost.conf [INFO] Выходной файл: /Users/.../Temp/DemoServer/bin/install.bat [INFO] Выходной файл: /Users/.../Temp/DemoServer/bin/manager.bat Перевод текста на русский язык:

/Users/.../Temp/DemoServer/bin/shutdown.bat
[INFO] Output file: /Users/.../Temp/DemoServer/bin/startup.bat
[INFO] Output file: /Users/.../Temp/DemoServer/bin/uninstall.bat
[INFO] Output file: /Users/.../Temp/DemoServer/bin/manager.sh
[INFO] Output file: /Users/.../Temp/DemoServer/webapps/ROOT/index.jsp
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.498s
[INFO] Finished at: Thu Nov 02 10:05:47 CST 2017
[INFO] Final Memory: 11M/309M
[INFO] ------------------------------------------------------------------------


**Сгенерированные файлы:**
| Файл | Описание |
| --- | --- |
| conf/server.xml | Конфигурационный файл сервиса Tomcat |
| vhost.conf | Необходимый для интеграции с Nginx и Apache Server конфигурационный файл |
| bin/install.bat | Установка сервиса в среде Windows |
| bin/manager.bat | Открытие сервиса управления Tomcat в среде Windows |
| bin/shutdown.bat | Остановка сервиса в среде Windows |
| bin/startup.bat | Запуск сервиса в среде Windows |
| bin/uninstall.bat | Деинсталляция сервиса в среде Windows |
| bin/manager.sh | Управление запуском, остановкой и другими операциями сервиса в Linux или Unix-среде |
| webapps/ROOT/index.jsp | Файл по умолчанию для JSP-страницы |

**Запуск и остановка сервиса в Linux:**
* Для manager.sh необходимо добавить права выполнения:
    * Выполнить команду:
        ```
        chmod +x manager.sh
        ```
* Запуск сервиса:
     * Выполнить команду:
         ```
         ./manager.sh start
         ```
     * Вывод консоли:
         ```
         Using CATALINA_BASE:   /Users/.../Temp/DemoServer
         Using CATALINA_HOME:   /Users/.../apache-tomcat-7.0.54
         Using CATALINA_TMPDIR: /Users/.../Temp/DemoServer/temp
         Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
         Using CLASSPATH:       /Users/.../apache-tomcat-7.0.54/bin/bootstrap.jar:/Users/.../apache-tomcat-7.0.54/bin/tomcat-juli.jar
         Using CATALINA_PID:    /Users/.../Temp/DemoServer/logs/catalina.pid
         Tomcat started.
        ```
* Остановка сервиса:
    * Выполнить команду:
         ```
        ./manager.sh stop
        ```
    * Вывод консоли:
         ```
        Using CATALINA_BASE:   /Users/.../Temp/DemoServer
        Using CATALINA_HOME:   /Users/.../apache-tomcat-7.0.54
        Using CATALINA_TMPDIR: /Users/.../Temp/DemoServer/temp
        Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home
        Using CLASSPATH:       /Users/.../apache-tomcat-7.0.54/bin/bootstrap.jar:/Users/.../apache-tomcat-7.0.54/bin/tomcat-juli.jar
        Using CATALINA_PID:    /Users/.../Temp/DemoServer/logs/catalina.pid
        Tomcat stopped.
        ```
#### 2.1.12 entity: генератор кода данных сущности
> Генерация соответствующего класса данных сущности на основе существующей структуры таблицы базы данных, поддержка таблиц и представлений, поддержка форматов вывода структуры ConsoleTable и markdown;

- Список параметров:
| Параметр | Обязательный | Описание |
|---|---|---|
| view | Нет | Указывает, что код генерируется для представления, значение по умолчанию: false |
| markdown | Нет | Определяет, использовать ли формат markdown для вывода структуры, значение по умолчанию: false |
| csv | Нет | Определяет, использовать ли формат csv для вывода структуры, значение по умолчанию: false |
| onlyShow | Нет | Генерирует только структуру без файлов, значение по умолчанию: false |

- Параметры источника данных и генерации правил конфигурации:
> Перед генерацией кода данных сущности необходимо настроить источник данных по умолчанию и правила генерации. Пожалуйста, настройте и подтвердите следующие параметры в ymp-conf.properties в соответствии с фактическими потребностями:

#-------------------------------------

JDBC持久化模块初始化参数

#-------------------------------------

是否显示执行的SQL语句,默认为false

ymp.configs.persistence.jdbc.ds.default.show_sql=true

数据库表前缀名称,默认为空

ymp.configs.persistence.jdbc.ds.default.table_prefix=ym_

数据库连接字符串,必填参数

ymp.configs.persistence.jdbc.ds.default.connection_url=jdbc:mysql://localhost:3306/ymate_demo

数据库访问用户名称,必填参数

ymp.configs.persistence.jdbc.ds.default.username=root

数据库访问密码,可选参数

ymp.configs.persistence.jdbc.ds.default.password=

#-------------------------------------

JDBC数据实体代码生成器配置参数

#-------------------------------------

是否生成新的BaseEntity类,默认为false(即表示使用框架提供的BaseEntity类)

ymp.params.jdbc.use_base_entity=

是否使用类名后缀,不使用和使用的区别如: User-->UserModel,默认为false

ymp.params.jdbc.use_class_suffix=

是否采用链式调用模式,默认为false

ymp.params.jdbc.use_chain_mode=

是否添加类成员属性值状态变化注解,默认为false

ymp.params.jdbc.use_state_support=

实体及属性命名过滤器接口实现类,默认为空

ymp.params.jdbc.named_filter_class=

数据库名称(仅针对特定的数据库使用,如Oracle),默认为空 ymp.configs.persistence.jdbc.ds.default.username = root

# 数据库访问密码,  допустимый параметр
**ymp.configs.persistence.jdbc.ds.default.password =**
- Команда:

    Выполнение команды:

    ```
    mvn ymate:dbquery -Dsql="select * from ym_user" -Dpage=1 -Dformat=csv
    ```

    Вывод в консоль:

    ```
    Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building ympDemo 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:dbquery (default-cli) @ ympDemo ---
    [INFO] SQL: select * from ym_user
    27 марта 2018 г. 22:15:36 net.ymate.platform.core.YMP init
    Информация:
    __   ____  __ ____          ____
    \ \ / /  \/  |  _ \  __   _|___ \
     \ V /| |\/| | |_) | \ \ / / __) |
      | | | |  | |  __/   \ V / / __/
      |_| |_|  |_|_|       \_/ |_____|  Website: http://www.ymate.net/
    27 марта 2018 г. 22:15:36 net.ymate.platform.core.YMP init
    Информация: Инициализация ymate-platform-core-2.0.5-Release build-20180327-2036 - debug:true - env:unknown
    27 марта 2018 г. 22:15:36 net.ymate.platform.persistence.jdbc.JDBC init
    Информация: Инициализация ymate-platform-persistence-jdbc-2.0.5-Release build-20180327-2036
    27 марта 2018 г. 22:15:36 net.ymate.platform.persistence.Persistence init
    Информация: Инициализация ymate-platform-persistence-2.0.5-Release build-20180327-2036
    27 марта 2018 г. 22:15:36 net.ymate.platform.core.YMP init
    Информация: Завершена инициализация, общее время: 241 мс
    27 марта 2018 г. 22:15:36 net.ymate.platform.persistence.jdbc.base.AbstractOperator execute
    Информация: [SELECT count(1) FROM (select * from ym_user) c_t][][1][9ms]
    27 марта 2018 г. 22:15:36 net.ymate.platform.persistence.jdbc.base.AbstractOperator execute
    Информация: [select * from ym_user limit 0, 20][][0][1ms]
    [INFO] ------------------------------------------------------------------------
    [INFO] Количество записей: 0
    [INFO] Текущая страница: 1/0 - 20
    [INFO] ------------------------------------------------------------------------

    // Пусто... :p

    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Общее время: 0,937 с
    [INFO] Завершено в: вторник, 27 марта, 22:15:36 CST 2018
    [INFO] Конечная память: 10M/245M
    [INFO] ------------------------------------------------------------------------

2.1.15 init:Инициализация необходимых конфигурационных файлов и структуры каталогов для проектов на основе YMP

  • Команда:

    Выполнение команды:

    mvn ymate:init -Doverwrite=true

    Вывод в консоль:

    Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building ympDemo 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:init (default-cli) @ ympDemo ---
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/resources/c3p0.properties
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/resources/dbcp.properties
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/resources/ehcache.xml
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/resources/simplelog.properties
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/resources/simplelogger.properties
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/resources/ymp-conf.properties
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/webapp/WEB-INF/web.xml
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/webapp/WEB-INF/cfgs/log4j.xml
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/webapp/WEB-INF/logs/.log
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/webapp/WEB-INF/templates/.tmpl
    [INFO] Выходной файл: /Users/.../ympDemo/src/main/webapp/WEB-INF/i18n/messages.properties
    [INFO] Выходной файл: **2.1.16 configuration: генератор структуры каталогов конфигурации**
    
  • Параметры:

Параметр Обязательный Описание
homeDir Нет Корневой путь конфигурации, по умолчанию текущий базовый путь проекта. Если указанный путь не существует, он будет создан
projectName Нет Имя проекта, значение по умолчанию — пустое
moduleNames Нет Набор имён модулей, значение по умолчанию — пустое. Несколько значений разделяются символом ,
pluginNames Нет Набор имён плагинов, значение по умолчанию — пустое. Несколько значений разделяются символом ,
repair Нет Выполнять ли восстановление отсутствующих файлов (кроме автоматического заполнения структуры каталогов, этот параметр также заполняет отсутствующие файлы). Значение по умолчанию — false
  • Пример команды:

    Выполнение команды:

mvn ymate:configuration -DprojectName=default -DmoduleNames=webapp,demo -Drepair=true

Вывод консоли:

Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building ympDemo 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- ymate-maven-plugin:1.0-SNAPSHOT:configuration (default-cli) @ ympDemo ---
[INFO] Base directory: /Users/.../ympDemo
[INFO] Create directory: /Users/.../ympDemo/bin
[INFO] Create directory: /Users/.../ympDemo/dist
[INFO] Create directory: /Users/.../ympDemo/projects
[INFO] Create directory: /Users/.../ympDemo/cfgs
[INFO] Create directory: /Users/.../ympDemo/classes
[INFO] Create directory: /Users/.../ympDemo/lib
[INFO] Create directory: /Users/.../ympDemo/logs
[INFO] Create directory: /Users/.../ympDemo/temp
[INFO] Output file: /Users/.../ympDemo/cfgs/log4j.xml
[INFO] Create directory: /Users/.../ympDemo/projects/default/cfgs
[INFO] Create directory: /Users/.../ympDemo/projects/default/classes
[INFO] Create directory: /Users/.../ympDemo/projects/default/lib
[INFO] Create directory: /Users/.../ympDemo/projects/default/logs
[INFO] Create directory: /Users/.../ympDemo/projects/default/temp
[INFO] Output file: /Users/.../ympDemo/projects/default/cfgs/log4j.xml
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/webapp/cfgs
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/webapp/classes
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/webapp/lib
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/webapp/logs
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/webapp/temp
[INFO] Output file: /Users/.../ympDemo/projects/default/modules/webapp/cfgs/log4j.xml
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/demo/cfgs
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/demo/classes
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/demo/lib
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/demo/logs
[INFO] Create directory: /Users/.../ympDemo/projects/default/modules/demo/temp
[INFO] Output file: /Users/.../ympDemo/projects/default/modules/demo/cfgs/log4j.xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.458s
[INFO] Finished at: Fri May 18 11:56:20 CST 2018
[INFO] Final Memory: 9M/245M
[INFO] ------------------------------------------------------------------------

#### One More Thing

YMP не только предоставляет удобный опыт быстрой разработки для веб-приложений и других Java-проектов, но и постоянно предлагает более богатый опыт проектов.

Заинтересованные друзья могут присоединиться к официальной группе QQ 480374360, чтобы общаться и учиться вместе, помогая YMP расти!

Чтобы узнать больше о фреймворке YMP, посетите официальный сайт: http://www.ymate.net/.

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

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

Введение

Помогаем быстро создавать инструменты расширения Maven для различных структур Java-проектов на основе фреймворка YMP. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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