Skip to content

Profiles

maphih edited this page Sep 5, 2025 · 1 revision

General information on profiles

Evee specifies the following maven build profiles:

  • complete: The default profile, which compiles all modules.
  • owlapi4: This profile compiles all modules except for evee-protege and its sub-modules. Only the owlapi4-version of each module will be compiled.
  • owlapi5: This profile compiles all modules except for evee-protege and its sub-modules. Only the owlapi5-version of each module will be compiled.
  • protege: This profile compiles all modules relevant for the protege-plugins. Essentially, this profile compiles the same modules as the profile owlapi4 excluding the module evee-libs-owlapi4 and including the modules evee-protege and evee-protege-release.
  • pluginDev: This profile compiles only the module evee-protege and its sub-modules.

Compilation of the profile owlapi5

The profile owlapi5 re-uses the source code of the profile owlapi4. Compilation of this profile is done via a combination of several maven plugins:

maven-compiler-plugin

When using the profile owlapi5, this plugin is used to turn off compilation of all sub-modules of Evee except for the relevant owlapi5 submodules.

This is done by defining the plugin in the pom.xml of the parent module evee and using the property-variable skipCompilation for the configuration tags skipMain (to skip compilation of main source files) and skip (to skip compilation of test source files). The default value of this variable is false. When using the profile owlapi5, this variable is changed to true, which turns off compilation of all sub-modules of Evee. The variable is then overwritten to false in the owlapi5 sub-modules of Evee. This enables compilation for only these specific sub-modules.

maven-source-plugin and maven-jar-plugin

The maven-source-plugin and the maven-jar-plugin are used in the owlapi4 sub-modules to avoid duplication of code in the corresponding owlapi5 sub-modules.

The maven-source-plugin creates (up to) 2 jar files that contain all main source files and test source files. This is done via the goals jar and test-jar. These jar files are located in the directory target of the sub-module and have the classifiers sources and test-sources added to their names.

The maven-jar-plugin creates (up to) 2 jar files that contain all main resource files and test resource files. This is done via the goal jar and specifying the directory where the corresponding resources can be found. The generated jar files are located in the directory target of the sub-module and have the classifiers main-resources and test-resources added to their names.

maven-dependency-plugin and build-helper-maven-plugin

The maven-dependency-plugin and the build-helper-maven-plugin are used in the owlapi5 sub-modules to avoid duplication of code from the corresponding owlapi4 sub-modules.

The maven-dependency-plugin is used to unpack the main sources, test sources, main resources and test resources into the target directory of the project. From there, the code is compiled and packaged into a jar with the dependency to owlapi5.

Note that the unpacking into the target directory requires specifying to maven where the new source files can be found. This is done via the tags sourceDirectory and testSourceDirectory, which are added to the build block in the corresponding pom.xml.

The build-helper-maven-plugin is used to specify the new resource directories (which are located inside the target directory) after unpacking the jar files. This is done via the goals add-resource and add-test-resource (note that it might also be possible to specify these new locations without the need for an additional plugin by just using the tags resources and testResources in the build block of the corresponding pom.xml).

Clone this wiki locally