The following instructions are for Debian or Ubuntu Linux. For other Linux distributions, please adapt the commands accordingly.

1. Install Prerequisites

  • Install JDK 11 or JDK 17. Please make sure JAVA_HOME is set.

    $ sudo apt-get update
    $ sudo apt-get install default-jdk

    For more detail, you can refer to https://www.digitalocean.com/community/tutorials/how-to-install-java-on-ubuntu-with-apt-get


    Set the JAVA_HOME by editing the file /etc/environment


    $ sudo nano /etc/environment

    In this file, add the following line :

    JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"  //For JDK 11
    
    JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"  //For JDK 17

    Now reload the file and test:

    $ source /etc/environment
    $ echo $JAVA_HOME
  • Install MySQL 5.5 or above.

    $ sudo apt-get install mysql-server
    $ sudo service mysql start
  • Install Apache Maven 2.2.1 or above. Please make sure "mvn" command is able to execute from command line.

    $ sudo apt-get install maven
    $ mvn -version
  • Install Git.

     

    $ sudo apt-get install git
    $ git --version

2. Install 3rd Party Libraries

$ wget https://dev.joget.org/community/download/attachments/19104566/install-libraries.zip
$ unzip -a install-libraries.zip
$ cd install-libraries
$ ./install_linux.sh
$ cd ~

3. Obtain Source

$ mkdir joget_src
$ cd joget_src
$ git clone https://github.com/jogetworkflow/jw-community.git --branch 8.0-SNAPSHOT --depth 1
$ cd ~

4. Configure Datasource for Test Case

Prepare the database for Joget usage.

$ mysql -uroot
$ create database jwdb;
$ exit
$ mysql -uroot jwdb < joget_src/jw-community/wflow-install/src/main/resources/data/jwdb-empty.sql

Download wflow.zip and extract in your user home.

$ wget http://dev.joget.org/community/download/attachments/19104566/wflow.zip
$ unzip -a wflow.zip
$ cd wflow
$ nano app_datasource-default.properties

Make sure the configuration in app_datasource-default.properties is correct.

workflowDriver=com.mysql.jdbc.Driver
workflowUrl=jdbc\:mysql\://localhost\:3306/jwdb?characterEncoding\=UTF-8
workflowUser=root
profileName=
workflowPassword=

5. Build Project

It is NOT recommended to skip unit tests in Joget, to ensure build integrity.

$ cd ~/joget_src/jw-community/wflow-app/
$ mvn clean install


Note: If a different JDK version is already in use, the JDK version specified in the project's pom.xml file can be overridden during the project build process using the mvn (Maven) command. 
For example, if the project needs to be built with JDK 17, Please write the following command :

$ mvn -Dmaven.compiler.source=17 -Dmaven.compiler.target=17 clean install

6. Skipping Build Test

In case project build failures are encountered, and would want to bypass the testing phase, please follow the below steps:

  • If for example wflow-commons build has failed, head to the cloned directory of joget_src performed during 3. Obtain Source Code
  • Then, browse to jw-community\wflow-commons
  • Edit the pom.xml file by opening with a notepad or other similar app that one wish to use
  • Find maven-surefire-plugin inside the pom.xml file
  • Set <skipTests>false</skipTests> to <skipTests>true</skipTests>
  • If maven-surefire-plugin is not found, copy and paste from other pom.xml or copy paste the code below under plugin section of the pom


    <plugin>
    
    <groupId>org.apache.maven.plugins</groupId>
    
    <artifactId>maven-surefire-plugin</artifactId>
    
    <version>2.4.3</version>
    
    <configuration>
    
    <skipTests>true</skipTests>
    
    </configuration>
    
    </plugin>


    If still unsure where to paste, paste under other </plugin>lines as shown in the figure below.



  • Repeat for any other build section that has failed
  • If the maven-surefire-plugin skipTests has been set to true and still fails
  • Set maven-war-plugin <version>x.x.x</version> to the version of maven-compiler-plugin's

7. Fixing Plugin Version

Failed to execute goal "org.apache.maven.plugins:maven-compiler-plugin" 


To fix this issue, please follow the step below:

In the terminal write:

$ mvn wrapper:wrapper

This will automatically download and use the appropriate version of Maven defined in the project's wrapper configuration.





  • No labels