Preparing your Computer

Building a project like Apache PLC4X on multiple target operating-systems is quite a challenge, but I think we managed to make it as simple as possible.

However, when building PLC4X there are some requirements the build is expecting you to have provided. However, this greatly depends on which parts you want to build. The Java modules hereby probably have the least demanding requirements.

In order to build most Java parts of PLC4X you are required to have at least Java 9 installed on your machine. Some integration modules and some other languages however may add some additional constraints to this.

Tip
We have tested the build with Java 11 up to Java 18 (Latest version at the time of writing this document).

If a new version comes out, please give us a little time to verify and handle any related issues. We’ll probably fix them as soon as possible. However, in the past with Oracle’s new release strategy, there have been a few bumps on the road.

Also will PLC4X build with any Maven version starting with Maven 3.3.0 however the with-c profile requires at least Maven 3.6 as the cmake-maven-plugin requires this.

Tip
Currently, Maven 3.6 and above is required for being able to build all parts of PLC4X.

Profile

Description

Requirements

Builds Java API, drivers

  • Git

  • LibPCAP

with-c

Builds C API, drivers

with-dotnet

Builds C# and .Net API, drivers

  • dotnet

with-python

Builds Python API, drivers

  • python (min 3.7)

  • pyenv

The following pages will describe how to provide these requirements for your operating system.

Preparing your IDE

IntelliJ

When running Java unit-tests in IntelliJ, you might run into problems where during the test execution complaints arise that JUnit is unable to load {failsafeArgLine}. In this case you need to go to Settings → Build, Execution, Deployment → Build Tools → Maven → Running Tests and deselect the option argLine.