Is it possible to clone a module?

Hello guys good day, I’m new to axelor. I tried the demo and its looks great, but Im wondering is it possible to clone a module? I see that in the demo there is a plus button in the apps management which means I can make new modules but how do I do that? Do I need to learn java in order for me to clone a module? Cheers

Here is my take on cloning a module… others should feel free to correct me. I am not a programmer and don’t use an IDE like Eclipse.

Go to your your axelor-source/axelor-erp/modules/abs/ location and copy the module folder you want to clone. In this example I will ‘clone’ the axelor-project module by copying the folder, and giving the copied folder a new name - axelor-customproject.

Then in the build.gradle file in the cloned module folder I change the title, description, the destinationDir, and the webapp details as follows:

apply plugin: “com.axelor.app-module”

apply from: “…/version.gradle”

apply {
version = absVersion
}

spotless {
java {
googleJavaFormat()
}
}

axelor {
title “Axelor CustomProject”
description “Axelor Custom Project Module”
}

dependencies {
compile project(":modules:axelor-base")
}

task copyWebapp(type: Copy) {
destinationDir = file(rootCustomProject.buildDir)
into(“webapp/customproject”) {
from “src/main/webapp”
}
}

rootProject.tasks.war.dependsOn copyWebapp

Save the file.

Next step is to modify the settings.gradle file in /axelor-source/axelor-erp/ to include the new module details, such as:

// Include modules
include “modules:axelor-customproject”

Next step is to update the build.gradle file in the same location with:

dependencies {
compile project(’:modules:axelor-customproject’)
}

Now to check whether the project is configured properly, build it again:

$ ./gradlew build

This is where I get a cup of coffee and keep my fingers crossed. 

Please correct any errors and provide feedback.

cheers, Simon

Is your solution working?

I mean, how do you handle underlying database tables for newly cloned module?

axelor-project & axelor-customproject are pointing to the same database tables or a duplicate copy is created for the new module?

In my case I use new tables which are created when the new module is built. You could use the same tables of course, if you prefer.