The devonfw-ide aims to be highly configurable and flexible. The configuration of the devon command and environment variables takes place via files. The following list shows these configuration files in the order they are loaded so files can override variables from files above in the list:

  1. build in defaults (for JAVA_VERSION, ECLIPSE_PLUGINS, etc.)

  2. ~/ - user specific global defaults (on windows in %USERPROFILE%/

  3. scripts/ - defaults provided by devonfw-ide. Never directly modify this file!

  4. - vendor variables for custom distributions of devonfw-ide-scripts, may e.g. tweak SETTINGS_PATH or predefine SETTINGS_URL.

  5. settings/ (${SETTINGS_PATH}/ - project specific configurations from settings.

  6. workspaces/${WORKSPACE}/ - optional workspace specific configurations (especially helpful in projects using docker).

  7. conf/ - user specific configurations (e.g. M2_REPO=~/.m2/repository). During setup this file is created by copying a template from ${SETTINGS_PATH}/devon/conf/

  8. settings/projects/*.properties- properties to configure project checkout and import

The files allow to define environment variables in a simple and OS independent way:

  • # comments begin with a hash sign (#) and are ignored

  • variable_name=variable_value with space etc.

  • variable_name=${predefined_variable}/folder_name

    variable values can refer to other variables that are already defined, which will be resolved to their value. You have to used ${…​} syntax to make it work on all platforms (never use %…​%, $…​, or $(…​) syntax in files).

  • export exported_variable=this value will be exported in bash, in windows CMD the export prefix is ignored

  • variable_name=

    this will unset the specified variable

  • variable_name=~/some/path/and.file

    tilde is resolved to your personal home directory on any OS including windows.

  • array_variable=(value1 value2 value3)

    This will only work properly in bash worlds but as no arrays are used in CMD world of devonfw-ide it does not hurt on windows.

  • Please never surround values with quotes (var="value")

  • This format is similar to Java *.properties but does not support advanced features as unicode literals, multi-lined values, etc.

In order to know what to configure, have a look at the available variables.

Please only tweak configurations that you need to change and take according responsibility. There is a price to pay for flexibility, which means you have to be careful what you do.

Further, you can configure maven via conf/settings.xml. To configure your IDE such as eclipse or vscode you can tweak the settings.

Last updated 2023-11-20 10:37:01 UTC