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

Предварительные требования

Примечание

Вы можете использовать ηCMS под Windows однако тест кейсы ηCMS 1.0 предназначены для работы только на Unix-подобных платформах. ηCMS 1.0 в продакшен режиме рекомендуется использовать только на Linux

Использование Maven Archetype

Лучший способ создать новый проект на базе ηCMS - это создать его из maven архетипа (maven archetype).

mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -U \
    -DarchetypeGroupId=softmotions \
    -DarchetypeArtifactId=ncms-site-archetype \
    -DarchetypeVersion=1.2-SNAPSHOT \
    -DarchetypeRepository=https://repo.softmotions.com/repository/softmotions-public

В качестве альтернативы можно выполнить более короткую команду:

mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate \
    -DarchetypeCatalog=https://softmotions.com/rs/media/public/1542/archetype-catalog.xml

Продемострируем создание и дальнейшее развитие ηCMS проекта на примере создания информационного сайта о попугаях. Код сайта будет в пакете org.myparrots.

$:   mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -U \
>         -DarchetypeGroupId=softmotions \
>         -DarchetypeArtifactId=ncms-site-archetype \
>         -DarchetypeVersion=1.2-SNAPSHOT \
>         -DarchetypeRepository=https://repo.softmotions.com/repository/softmotions-public
[INFO] Scanning for projects...

....

Define value for property 'groupId':  org.example: : org.myparrots
Define value for property 'artifactId':  ncmsapp: : ncmsapp
Define value for property 'version':  1.0-SNAPSHOT: :
Define value for property 'package':  org.example: : org.myparrots
Define value for property 'projectName':  My ηCMS Project: : All about my parrots
Define value for property 'serverPort':  8080: : 9292
Confirm properties configuration:
groupId: org.myparrots
artifactId: ncmsapp
version: 1.0-SNAPSHOT
package: org.myparrots
projectName: All about my parrots
serverPort: 9292

Структура проекта

В результате выполнения mvn archetype:generate мы получили проект со следующей структурой:

ncmsapp
│
├── qx/
│   ├── src/
│   └── pom.xml
├── tomcat/
│   ├── context.xml
│   └── server.xml
├── web/
│   ├── src/
│   └── pom.xml
├── pom.xml
└── README.md

Где:

  • qx - административный GUI интерфейс сайта, построенный на основе javascript библиотеки qooxdoo
  • web - бизнес логика сайтов на стороне сервера
  • tomcat - файлы конфигурации сервера Apache Tomcat для запуска сервера
    в режиме тестирования

Выбор и настройка соединения с БД

Перед тем, как запустить систему в конфигурации проекта, необходимо настроить параметры соединения с базой данных.

В версии ηCMS 1.0 поддерживаются следующие базы данных:

Параметры соединения приложения с базой данных, как и другие параметры приложения, определяются в файлах конфигурации. В данном проекте это файл: conf/ncmsapp-dev-configuration.xml.

 <mybatis>
    <bindDatasource>true</bindDatasource>
    <config>com/softmotions/ncms/db/mybatis-config.xml</config>
    <propsFile>{home}/.ncmsapp.ds</propsFile>
    <!-- DB2 -->
    <extra-properties>
        JDBC.driver=com.ibm.db2.jcc.DB2Driver
    </extra-properties>
    <!-- Postgresql -->
    <!--
    <extra-properties>
        JDBC.driver=org.postgresql.Driver
    </extra-properties>
    -->
    <extra-mappers>
        <mapper>
            <!--<resource>extra_mybatis_mapper.xml</resource>-->
        </mapper>
    </extra-mappers>
</mybatis>

Дополнительные параметры соединения с БД определяются в файле {home}/.ncmsapp.ds, где {home} - домашняя директория пользователя, из-под которого запущен сервер ηCMS. Необходимо создать этот файл и заполнить его параметрами аналогично примеру:

cat ~/.ncmsapp.ds

Для DB2:

JDBC.url=jdbc:db2://127.0.0.1:50000/NCMS
JDBC.username=ncms
JDBC.password=*******

Для PostgreSQL:

JDBC.url=jdbc:postgresql://127.0.0.1:5432/ncms
JDBC.username=ncms
JDBC.password=*******

Сборка и запуск проекта

mvn clean verify && mvn -Pcargo.run

Интерфейс администратора будет доступен по адресу: http://localhost:<port>/adm/ Имя пользователя admin а пароль находтся в ресурсе: conf/ncmapp-users.xml

Новый ηCMS проект на Youtube

System Message: WARNING/2 (/home/adam/Projects/softmotions/ncms/ncms-docs/ncms-docs-ru/doc/gettingstarted/newproject.rst, line 186)

Explicit markup ends without a blank line; unexpected unindent.
width:100%