## C4-PlantUML Maven Plugin

The C4-PlantUML Maven Plugin is a set of tools designed around the very good C4-PlantUML PlantUML extension by Ricardo Niepel. It provides syntax checking, design rules enforcement, watermarking and much more.

If you came here without knowing what is the C4 software architecture model, you can find more information on Simon Brown’s website - the father of that model. You can also get some information on the about the C4 model page.

Please note that the C4-PlantUML Maven Plugin uses a grammar version that is a bit more strict than Ricardo Niepel’s version, to remove any ambiguity within the parser. The enforced grammar is available on Gitlab.

### Goals Overview

The C4-PlantUML Maven Plugin has four goals so far.

They are all bound to a default phase in the Maven build lifecycle, and you can get more information about them on the goals page.

### Usage

General instructions on how to use the C4-PlantUML Maven Plugin can be found on the usage page.

Some more specific use cases are described in each goal page, and in the examples given below.

### Examples

- Checking for syntax errors
- Linting C4 source files
- Generating a GraphML report from C4 source files
- Watermarking C4 source files

### License

Most of the code is available under the terms of the GPLv3, except for these PlantUML includes that were cloned from Ricardo Niepel’s work, and are consequently under the terms of the MIT license.

### Contributing

If you want to contribute, please make sure that you read the following pages first:

- Before you start
- Reporting issues
- Plugin architecture
- Testing
- Writing built-in linting rules
- Writing custom linting rules