AlgoTraderAlgoTrader Documentation

Chapter 4. Java Environment

4.1. AlgoTrader Project Structure
4.1.1. common project
4.1.2. core project
4.1.3. conf project
4.1.4. launch project
4.1.5. strategy projects
4.2. Java Packages & Classes
4.3. Maven Environment
4.3.1. Maven assemblies
4.3.2. Packaging strategies
4.3.3. Maven profiles

The Framework AlgoTrader consists of the following Sub-Projects:

For a full list of java packages and classes please visit our Javadoc

AlgoTrader uses Maven as its build management framework. Every project/module therefore has it's own pom.xml (Project Object Model) defining its structure and dependencies.

In addition to standard maven profile, there are Maven profiles provided to perform various side-tasks.

To enable one or more profiles one should add its names prepended by -P to maven command. If there is more than one profile, they should be split by a comma.

The following example will run maven clean package goals with enunciate and swagger-ui profiles enabled.

mvn clean package -Penunciate,swagger-ui

Available profiles:


Enables Enunciate tool to generate HTML documentation and client-side libraries for multiple programming languages.

Libraries are generated into target/enunciate directory

Generated HTML documentation goes into target/site/apidocs/index.html.


Enables Swagger UI interactive REST API docs generation.


Enables code generation for AlgoTrader HTML5 UI.

The UI is written in Typescript and UI gets a lot of Algotrader's domain classes serialized in JSON. In order to have the domain of Algotrader defined in one place, the Java domain model is being transformed into Typescript types and used in UI.


Enables Historical Data Manager & Reference Data Manager styles compilation.

These tools are written in Vaadin Framework (Java) and its Sass styles need to be compiled using Vaadin Sass Compiler.


Enables all of the above profiles at once