Step 1: Create a Project
The Axelor Open Platform uses Gradle to manage application project and it’s modules.
Directory structure
The directory structure of a typical Axelor Open Platform application project is something like this:
open-platform-demo └── src │ └── main │ ├── java │ └── resources │ ├── application.properties (1) │ └── META-INF │ └── persistence.xml (2) ├── gradle (3) │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── modules (4) ├── gradlew (5) ├── gradlew.bat (5) ├── settings.gradle (6) └── build.gradle (7)
1 | The application config file |
2 | The minimal persistence xml file to confirm JPA requirement |
3 | The directory to keep gradle wrapper files |
4 | The directory to keep module projects |
5 | The shell and batch scripts to execute the build with wrapper |
6 | The gradle settings script |
7 | The gradle build script |
Create build.gradle
Create the application build script like this:
buildscript {
ext.repos = {
jcenter()
mavenCentral()
maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'https://repository.axelor.com/nexus/public/' } (1)
}
repositories repos
dependencies {
classpath 'com.axelor:axelor-gradle:5.2.0' (2)
}
}
allprojects {
repositories repos
}
apply plugin: 'com.axelor.app' (3)
axelor { (4)
title = 'Axelor :: DEMO'
}
allprojects {
apply plugin: 'idea'
apply plugin: 'eclipse'
group = 'com.axelor'
version = '1.0.0'
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
dependencies {
// add dependencies
}
1 | Use axelor maven repository |
2 | Use axelor gradle plugin to buildscript classpath |
3 | Use axelor application plugin |
4 | The application project config |
The apply plugin: 'com.axelor.app'
tells gradle to use a gradle plugin for this
build script. This plugin defines an extension point axelor
where we can
define various properties.
-
title - display title for the application
Create settings.gradle
Another important script is the settings.gradle
which aggregates all the
module projects to be used in current build process:
rootProject.name = 'open-platform-demo'
// Include modules
// include "modules:axelor-contact"
The include "modules:axelor-contact"
line tells gradle to include the module
axelor-contact
in current build cycle. It is required to list all the modules
in settings.gradle
file.
The application project generally doesn’t provide any implementation logic. The functionalities should be provided by creating modules.
To check whether application project is configured properly, issue the following command:
$ gradle build
The build process should finish without any error.
Generate Gradle wrapper
The recommended way to execute gradle build is with the help of Gradle Wrapper. Run the following command from terminal to generate wrapper:
$ gradle wrapper
Now onward, you can use either @gradlew@ shell script or @gradlew.bat@ batch script to execute build. Like:
$ ./gradlew build
Create config files
We also need to create following configuration files:
-
src/main/resources/application.properties
- the application config file -
src/main/resources/META-INF/persistence.xml
- the jpa configuration file
Please follow the app configuration guide for more details.