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.