Development environment guide with Intellij and Kubernetes


Please follow these steps in case you want to setup your development environment using IntelliJ and Kubernetes
Let us know in case you need additional help.

1. Get and install IntelliJ

Download the installer from .
Note: This guide is for the ultimate edition but with some exceptions it might work with the community edition as well.
The ultimate edition has some additional features for web application. E.g: autodetects spring and JEE applications and docker configurations , you can setup data sources for databases, and is also helpful for javascript.

2. Install Lombok

Please go to and install lombok

Edit your maven settings.xml file

Set up settings.xml from

You can copy the file to .m2 folder or any other place but make sure it’s set as it should be in

3. Clone and import the code

Go to VCS->Git->Clone and clone the following repos into a parent directory:

4. Build

All pom files will be detected, so you can clean install whatever is needed

5. Start metasfresh

All spring boot configurations will be detected so you will see the following:

  • Please make sure you use -Xmx4096M VM option before running.

  • Optional: If you want to use kubernetes and use windows , install “docker for desktop” from

  • make sure kubernetes is enabled in the settings

  • go to metasfresh-dist->dist->src->main->kubernetes->manifests->dev

  • create the services and deployments described in the yaml files. Check for help

  • After everything is deployed with kubernetes, copy the files from
    “metasfresh-dev” into the structures and run “WebRestApiApplication from IntelliJ

  • Check http://localhost:30080/ for the metasfresh UI

  • Optional: There are some eclipse launcher files in the project. You could install eclipser and
    convert the files. After installing and restarting you can right click on a “.launch” file and you’ll
    find the “convert with eclipser” option.

6.Eclipse to IntelliJ hints

  • In general A workspace in eclipse is a project in intelliJ and a project in eclipse is a module in intelliJ

  • You can import eclipse shortcuts into Intellij. Go to File->Settings->KeyMap

  • Import eclipse formatting. Go to File->Settings->Editor->Code Style and after clicking the scheme settings drop down you can import a file. Go the metasfresh-dev->eclipse-config->eclipse-metas-formatter.xml


Just a week and will test this for myself :blush:


I just saw a message where intelliJ recommended me to enable annotation processing and guided me to this setting:

@Hanelore I now activated it…did that make sense?
I’m not yet sure which parts of the compiling are really done by “native” maven (I guess there, the lombok related processing is on as per pom.xml) and where a setting like this one makes a difference (Note: I didn’t yet get to try and run anything from IntelliJ)


Hi everyone, I am a newbie to metasfresh/java and spring boot framework, but I am most interested in this project and want to learn from it.

If someone could just clarify editing the settings.xml file to get the source code into Intelij ultimate I would be grateful.

Thus far using a Kubuntu 18.04 machine I have navigated using Dolphin from root/home/len/ than used control tab to unhide folders and files in my home dir. The path to the .xml file is Home/.m2/wrapper/dists/apache-maven-3.6.0-bin/2dakv70gp803gtm5ve1ufmvttn/apache-maven-3.6.0/conf/settings.xml

This is what the file looks like-

| Specifies a further group identifier to use for plugin lookup.

| Specification for one proxy, to be used in connecting to the network.


| Specifies the authentication information to use when connecting to a particular server, identified by
| a unique name within the system (referred to by the ‘id’ attribute below).
| NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
| used together.


Another sample, using keys to authenticate.

optional; leave empty if not used.

| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.

Human Readable Name for this Mirror.

| Specifies a set of introductions to the build process, to be activated using one or more of the
| mechanisms described above. For inheritance purposes, and to activate profiles via
| or the command line, profiles have to have an ID that is unique.
| An encouraged best practice for profile identification is to use a consistent naming convention
| for profiles, such as ‘env-dev’, ‘env-test’, ‘env-production’, ‘user-jdcasey’, ‘user-brett’, etc.
| This will make it more intuitive to understand what the set of introduced profiles is attempting
| to accomplish, particularly when you only have a list of profile id’s for debug.
| This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.



      <name>Repository for JDK 1.4 builds</name>


 | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
 | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
 | might hypothetically look like:
 | ...
 | <plugin>
 |   <groupId>org.myco.myplugins</groupId>
 |   <artifactId>myplugin</artifactId>
 |   <configuration>
 |     <tomcatLocation>${tomcatPath}</tomcatLocation>
 |   </configuration>
 | </plugin>
 | ...
 | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
 |       anything, you could just leave off the <value/> inside the activation-property.



| List of profiles that are active for all builds.



Am I to copy/edit in the additional code provided for the Intelij IDE above the last of the code in this file --> above??? and thank you for your assistance in advance.