Skip to content
This repository has been archived by the owner on Apr 6, 2022. It is now read-only.
Pascal Verdier edited this page Jun 16, 2020 · 25 revisions

Welcome to the pogo wiki!

How to develop Pogo using IntelliJ IDEA and Maven

Since Pogo-9.7.0, JAVA 11 or higher is needed to compile and execute Pogo classes.

Importing Pogo project to IntelliJ IDEA

First clone this repo: git clone git@github.com:tango-controls/pogo.git && cd pogo

Checkout Mavenization2 branch: git checkout Mavenization2

Launch IDEA and open a new project:

File -> Open...

import1

IDEA will take its time to resolve all dependencies and may ask to import a maven project. In the end you should see a project with 4 modules:

import4

Build Pogo with maven

To build Pogo go to fr.esrf.tango.pogo.parent folder and execute mvn install:

import6

Maven builds and installs each module independently into the local repository (usually $HOME/.m2/repository). Resulting .jar files can be found in the corresponding module target folder e.g. fr.esrf.tango.pogo/target.

.jar file Pogo-X.X.X.jar in org.tango.pogo_gui/target folder is executable.

Once Pogo has been built re-import maven project:

import7

This will force IDEA to add generated source folders (src-gen and xtend-gen) to the classpath.

Launch Pogo from IntelliJ IDEA

To launch Pogo from IDEA: first -- import the project; second -- configure launcher:

Run -> Edit configurations...

import5

Release Pogo using maven

Disclaimer: due to known issue that Maven does not support flat project structure, required by eclipse and xtex plugin. This procedure can not be fully automatized :(

In general to perform a release one need to increment project version; tag repository and deploy the artifact.

The following steps are required to perform a manual release:

  1. tag repository: git tag Pogo-Release-X.X.X where X.X.X - current version without -SNAPSHOT
  2. clone repository localy: git clone . release
  3. update-versions in release: cd release/fr.esrf.tango.pogo.parent && mvn release:update-versions, when prompted enter current version without -SNAPSHOT e.g. Pogo-9.4.6-SNAPSHOT -> Pogo-9.4.6
  4. deploy Pogo: mvn deploy
  5. update-versions in main repository: cd ../../fr.esrf.tango.pogo.parent && mvn release:update-versions, when prompted accept default value (X.X.{X+1}-SNAPSHOT) or set a new one e.g. 10.0.1-SNAPSHOT
  6. commit and push repository: cd .. && git add */pom.xml && git commit -m "increment version" && git push && git push --tags, the later pushes newly created local tag

NOTE: all maven commands must be executed in fr.esrf.pogo.parent folder