Info: This documentation is intended for people wanting to contribute to CLiC core engine. If you just want to develop new CLiC plugins, please have a look at this documentation.


Updating the source header

CLiC being an open-source application, we need to add a header refering to the license on top of each source file. To do so, we're using a Maven plugin, and here's how to update the header on top of each file of CLiC project: from the root project of CLiC, simply execute this Maven command: mvn clean license:format.

Yep, that's all!

Development good practices guidance

Info: This part of the documentation is far to be complete and aims at containing all the rules that should be followed while writing some source code for CLiC.

Here are a few basic rules that should be followed while committing some source code in CLiC:

  • Any commited source code should compile,
  • Any commited source code should be tested and work efficiently,
  • Any commited source code should be documented using javadoc,
  • Any commit should have a clear message commit explaining the aim of the contribution,
  • Only one issue should be resolved per commit,
  • All the source code should be formatted using Eclipse's default formatter,
  • No Eclipse warnings should be found in the source code,

Easy Maven interactions in your tasks/plugins

While CLiC allows to define tasks which are based on Maven, thanks to its generic Maven plugin, we thought that it might be useful to ease a little bit Maven interactions for people aiming at developing new tasks or plugins relying on Maven. That's why we just developed a small Java library: clic-utils which contains some APIs easing Maven interactions.

The aim of this library is to help you:

  • Generating pom.xml files using some templates,
  • Generating Maven queries to be invoked,
  • Dealing with CLiC-compliant command lines using the same parser,
  • Executing Maven commands in various modes (using a pom.xml file, or invoking plugins),
  • Filtering the outputs in order to retrieve some results of the execution
And many other small features that could help you while developing things relying on Maven.

We don't provide any detailed documentation on that API right now, as everything contains javadoc and is quite easy to use. We'll write down some documentation if needed.