Building MES from source code - tutorial

This guide is designed for bash.

I. Clone repository

This step is optional if you already have a copy of the repository.

Clone following repositories to directory of your choice (for example ~/qcadoo/):

git clone git@github.com:qcadoo/qcadoo-super-pom-open
git clone git@github.com:qcadoo/qcadoo-maven-plugin
git clone git@github.com:qcadoo/qcadoo
git clone git@github.com:qcadoo/mes

II. Checkout branch and pull changes

In ~/qcadoo/mes use the given command to checkout branch branch_name:

git checkout branch_name

To update your local repository in each project use command: 

git pull origin current_branch_name

III. Build projects

  1. Build framework and plugins
    Projects must be built in specific order:
    1. qcadoo-super-pom-open
    2. qcadoo-maven-plugin
    3. qcadoo
    4. mes

    Build each project with command:

    mvn clean install [-o]

    Use flag -o if you want to use locally built binaries.

    Rebuilding

    If you rebuild MES on the same computer and no changes have been done in step II. in given project, you can skip it in build order. If however some changes appear in qcadoo for example, you must rebuild projects b, c, d.

    Build order is important!

    Building qcadoo on non-Unix

    If you have got some problems when building qcadoo project on non-Unix based computer please add -DskipTests=true, to build command.

    If you have got some problems when building mes-commercial project on non-Unix computer please check your maven version. If you have version 3.9.x then change it to 3.8.x and remember about changing PATH for maven in environment variables.

  2. Prepare configuration for MES application

    Before you can start application, you have to create database.

    Postgres installation

    Currently we're working on Postgres 9.5.4. For installation manual depending on your platform follow: https://www.postgresql.org/download/.

    By default mes will try to connect to database as user: postgres, using password: postgres123 and connecting to database mes. You can change this settings in file mes/mes-application/target/tomcat-archiver/mes-application/qcadoo/db.properties

    Configuration preserving

    If you want to make configuration and preserve it between mes-application builds, change file mes/mes-application/conf/tomcat/db.properties


    If you want to make temporary configuration for current build only, change file mes/mes-application/target/tomcat-archiver/mes-application/qcadoo/db.properties (after first build!) .

    We no longer provide possibility to create clean database when starting qcadoo MES. 
    Instead, we attach schema dump, which You can find in the following path: 

    /mes/mes-application/src/main/resources/schema/demo_db_en.sql

    Before You can run qcadoo MES, all You have to do is to restore this dump using the following command (assuming, You have installed postgreSQL as the user postgres, and created database mes with password postgres123 and appropriate locale):

    psql -U postgres mes < path/to/schema/demo_db_en.sql


    Schema version

    Schema is valid for current master branch. If You decide to build qcadoo MES from branch different than current branch (e.g. dev, feature/xyz), You will fail to launch the application. In order to start qcadoo MES built from branch other than current master, change "hibernateHbm2ddlAuto=validate" to "hibernateHbm2ddlAuto=update" in file:

    mes/mes-application/target/tomcat-archiver/mes-application/qcadoo/db.properties (created after command below is being executed)


    Be aware - You may be missing some views, menu position etc., but You will be able to run qcadoo MES!

  3. Building MES application

    Navigate to mes/mes-application and use:

    mvn clean install -o -Ptomcat -Dprofile=package

IV. Start MES

In step III you created complete package with application in directory mes/mes-application/target/tomcat-archiver/mes-application.

To start local instance of MES:

  1. Navigate to directory with mes package:

    cd mes/mes-application/target/tomcat-archiver/mes-application
  2. Give execute rights to tomcat scripts:

    chmod a+x bin/*.sh
  3. Start MES:

    ./bin/startup.sh
  4. Shutdown MES: 

    ./bin/shutdown.sh

Access to logs

Logs can be found in directory mes/mes-application/target/tomcat-archiver/mes-application/logs/.

Most of the time you will find information you need in file root.log, for example if your instance started correctly, details of found errors etc.

You should ignore aspects errors and log4j errors from catalina.out - these are just warnings.

Access to local instance of MES

To access started locally instance of MES, go to page (by default):

http://localhost:8080

If MES started correctly, you should see login page. Default user: admin, password: adminSuperadmin user: superadmin, password: superadmin (start with this user, and add access roles to groups!).

The procedure is as follows:

  1. Login as superadmin.
  2. Go to ‘Administration’ → ‘Groups’.
  3. Click the right group on a list - the one that is related to the user you want to log in. Next, go there.
  4. Select all available roles. Save your choice.
  5. Log out.
  6. Log in the account again.


If you have any problems with building MES with this guide, feel free to contact us: pomoc@qcadoo.com.