05_developer_tutorials:03_maintenance:making-a-groimp-maven
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| 05_developer_tutorials:03_maintenance:making-a-groimp-maven [2025/01/31 14:44] – removed - external edit (Unknown date) 127.0.0.1 | 05_developer_tutorials:03_maintenance:making-a-groimp-maven [2025/02/19 15:51] (current) – ↷ Links adapted because of a move operation gaetan | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ===== Compile a GroIMP plugin ===== | ||
| + | ==== Requirements ==== | ||
| + | |||
| + | To compile GroIMP you will need the following additional tools: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | It is possible to compile and package one specific plugin. The plugin have to follow the template of [[https:// | ||
| + | |||
| + | The template contains: | ||
| + | |||
| + | - The assembly folder used to package the plugin with its dependency into a folder. Maven dependencies are automatically packaged. Third party local jar are also automatically included if the local-repository is setup in the plugin pom.xml file, and the maven property ''< | ||
| + | - The pom.xml that contains: the repository _gitlab-maven_ that points at this repository of maven artifacts, the parent dependency to de.grogra.GroIMP, | ||
| + | |||
| + | Then, the plugin can be compiled with '' | ||
| + | |||
| + | ==== Compile with help panels ==== | ||
| + | |||
| + | The documentation inside GroIMP is written in docbook which can be compiled into the html layout seen in the help panel. | ||
| + | To do this compilation an installation of docbook, docbook-xsl and xsltproc | ||
| + | On a Debian based system these can be installed with the following command: | ||
| + | '' | ||
| + | |||
| + | This require to have '' | ||
| + | |||
| + | Afterwards the maven command: '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Compile the complete project: ===== | ||
| + | |||
| + | To compile a set of GroIMP plugin (i.e. for a release), the parent pom.xml file of GroIMP is required. This file is a maven reactor file, which define the list of plugin (maven module) that should be compiled. | ||
| + | |||
| + | The easiest setup is to have all plugins and this parent pom into one repository. Then, make sure the parent pom.xml module list contains the exact set of plugin to compile. | ||
| + | |||
| + | It is then possible to apply maven command to the reactor: | ||
| + | - '' | ||
| + | - '' | ||
| + | |||
| + | ===== Compile the documentation ===== | ||
| + | |||
| + | GroIMP plugins can include documentation that is compiled and embed in the GroIMP platform (accessible through the Help menu). This documentation is automatically compiled and packaged with maven if it follow the template: the documentation is under src/ | ||
| + | |||
| + | The java documentation of a specific plugin can be compiled with '' | ||
| + | |||
| + | To compile the java documentation of a set of GroIMP plugin and package, at the root use | ||
| + | '' | ||
| + | It is required to package before aggregating the javadoc because javadoc: | ||
| + | |||
| + | ===== Create the executable release files ====== | ||
| + | |||
| + | Once the wanted plugins and core packages are packaged with maven it is possible to create executable files to install GroIMP for Windows, Debian and MacOS. | ||
| + | |||
| + | This operation require an additional GroIMP plugin: [[https:// | ||
| + | Put the Build plugin at the root of the GroIMP parent pom.xml. Make sure that the packaged classes and jars are under app/, app/ | ||
| + | |||
| + | The command '' | ||
| + | |||
| + | A specific distribution can be selected with '' | ||
| + | |||
| + | See more: | ||
| + | |||
| + | * [[05_developer_tutorials: | ||
| + | ===== Deploy the release files online ===== | ||
| + | |||
| + | The executable files can be added to the [[https:// | ||
| + | |||
| + | ===== Deploy the new version of the maven artifacts on gitlab ===== | ||
| + | |||
| + | The GroIMP sources, and plugins are available as maven artifacts (accessible whit the repository gitlab-maven defined as in the template file). | ||
| + | |||
| + | The update of these artifact is automatically handled by a gitlab pipeline. The pipeline starts when a new gitlab tag is created on the master branch. | ||
| + | |||
