Skip to content
CONTEXT MAPPER
  • Docs
  • Language Reference
  • Generators
  • News
  • Background
  • Get Involved
    Introduction
    • Welcome
    • Getting started
    • Create CML Project
    • Examples
    • Usage as Library
    • Frequently Asked Questions
    Language Reference (Core)
    • CML Reference - Introduction
    • Language Semantics
    • Context Map
    • Bounded Context
    • Domain and Subdomain
    • Domain Vision Statement
    • Partnership
    • Shared Kernel
    • Customer/Supplier
    • Conformist
    • Open Host Service
    • Anticorruption Layer
    • Published Language
    • Responsibility Layers
    • Knowledge Level
    • Aggregate
    • Tactic DDD Syntax
    • Application and Process Layer
    • User Requirements
    • Stakeholders
    • Value Registers
    • Imports
    Analysis and Design Transformations
    • Rapid Object-oriented Analysis and Design
    • Story Splitting (PoC)
    • Stakeholder and Value Modelling Transformations
    Architectural Refactorings (ARs)
    • Architectural Refactorings
    • AR-1: Split Aggregate by Entities
    • AR-2: Split Bounded Context by Features
    • AR-3: Split Bounded Context by Owner
    • AR-4: Extract Aggregates by Volatility
    • AR-5: Extract Aggregates by Cohesion
    • AR-6: Merge Aggregates
    • AR-7: Merge Bounded Contexts
    • AR-8: Extract Shared Kernel
    • AR-9: Suspend Partnership
    • AR-10: Change Shared Kernel to Partnership
    • AR-11: Change Partnership to Shared Kernel
    Value-Driven Analysis and Design
    • Value-Driven Analysis and Design (VDAD) Support
    Service Cutter
    • Context Map Suggestions with Service Cutter
    • Service Cutter Configuration File (.servicecutter.yml)
    Reverse Engineering
    • Context Map Discovery
    Generators
    • Generators Overview
    • Context Map Generator
    • PlantUML Generator
    • BPMN Sketch Miner Generator
    • MDSL (Micro-)Service Contracts Generator
    • Service Cutter Generators
    • Generic Generator (Templating)
    Tutorials
    • Model Event Storming Results in Context Mapper
    • Event Sourcing and CQRS Modeling in Context Mapper
    • Generate Microservices From Context Map Using JHipster
    • Systematic Service Decomposition with Context Mapper and Service Cutter
    • Validating the Implementation against the Model (with ArchUnit)
    IDE Plugins and Extensions
    • Visual Studio Code Extension
    • Online IDE (no longer supported)
    • Eclipse Plugin
    • Feature Support

    Create CML Project

    This page describes how you can start with Context Mapper and create your first CML model. Getting started with Context Mapper is easy, the following four steps will do:

    1. Install Context Mapper in Eclipse or Visual Studio Code
    2. Create a project
    3. Eclipse only: enable the Xtext project nature
    4. Create a file with the file extension .cml

    1. Install Context Mapper

    You can use Context Mapper in Eclipse or Visual Studio Code. Find the links to the marketplaces below:

    • Visual Studio Code:
      • Marketplace: Context Mapper for VS Code
        1. Open the extensions view on your VS Code (Ctrl+Shift+X)
        2. Search for “Context Mapper”
        3. Select the plugin with our Context Mapper logo and press “Install”.
      • Note: Does not support all features we have in Eclipse yet. You can find a feature support table here.
    • Eclipse:
      • Marketplace: Context Mapper for Eclipse
        1. Open the marketplace in your Eclipse with the menu entry Help -> Eclipse Marketplace…
        2. Search for “Context Mapper”
        3. Press “Install” on the Context Mapper plugin
      • Alternatively, you can follow this procedure to install the plugin from update site URL directly:
        1. Open the plugin installation dialog in Eclipse with the menu entry Help -> Install New Software…
        2. Enter the following update site URL to the field Work with: on the top of the dialog:
          https://contextmapper.org/eclipse-update-site/
        3. Select the two features ContextMappingDSL and ContextMappingDSL (Sources) and continue with Next.
        4. Finish the plugin installation by completing the wizard.

    2. Create or Open your Project

    In order to create a CML model, you need to create or open a project/workspace.

    For Eclipse users: you can use any project type such as Java Project, Maven Project, Gradle Project or just a general Project. Use the File -> New menu or the context menu in the Project Explorer to create a project.

    3. Eclipse Only: Enable Xtext Nature

    As mentioned above, it does not matter which project type you use. However, your project has to be an Xtext project, which means it requires the Xtext nature in Eclipse. There are ways to achieve this:

    • Option 1: Open the context menu on your project (right-click) and use the menu entry Configure -> Convert to Xtext Project. Enable Xtext nature on Eclipse project
    • Option 2: Just jump to step four and create a file with the extension .cml. Eclipse will ask you if you want to enable the Xtext nature. Press Yes.

    4. Create .cml Model File

    Once you have created your project, you can create a file with the extension .cml in order to start modeling with Context Mapper.

    Note for Eclipse users: If you already enabled the Xtext nature in step three, the file opens and you can start modeling. Otherwise Eclipse will ask you whether you want to enable it now: Enable Xtext nature at CML file creation

    In this case you have to confirm with Yes.

    Ready to Model

    You can now start writing CML in the Context Mapper editor. Use the following resources to get started:

    • Introductory CML snippets on our welcome page
    • Sample models in our examples repository
    • Detailed documentation about the language features in our language reference section.
    • FAQ’s

    Note: If you want to model across multiple *.cml files, for example to use Bounded Contexts in multiple Context Maps, consult the Imports page of our language reference.

    Once you have modeled your system with CML, you may want use our generators to produce other representations or evolve the model by using Architectural Refactorings (ARs):

    • Architectural Refactorings (ARs)
    • User Guides for generators:
      • Graphical Context Map generator
      • PlantUML generator
      • MDSL (Micro-)Service Contracts Generator
      • ServiceCutter generator
      • Generic generator (Freemarker templates)
    Improve this page on GitHub
    ← PreviousGetting started Next →Examples
    © 2026 Context Mapper contributors
    • GitHub
    • Get Involved
    • Background & Publications
    • RSS