Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Maven und das Trigger-Plugin in Confluence

Bei der Entwicklung von Confluence Plugins kommt häu­fig die auf Java basie­rende Buildmanagement-Software Maven zum Einsatz. Ziel dabei ist es, die Entwickler vom Anlegen des Projektes bis hin zum Kompilieren und Testen zu unter­stüt­zen und mög­lichst viele Schritte des Softwaremanagements auto­ma­ti­siert ablau­fen zu las­sen. Ein Tutorial für die Entwicklung von Confluence Plugins mit Hilfe von Maven fin­det sich auf den Seiten der Confluence Community.

Wenn eine sol­che Entwicklungsumgebung ein­ge­rich­tet wurde, kann der Buildprozess eines Plugins noch wei­ter ver­ein­facht wer­den. Dafür stellt Atlassian das Plugin Developer Kit for Maven2 (kurz PDK) zur Verfügung. Dabei han­delt es sich um ein Maven-Plugin, wel­ches ein­fach in der POM des eige­nen Projektes ein­ge­bun­den wer­den muss und dann auto­ma­tisch beim Buildprozess her­un­ter­ge­la­den und instal­liert wird. Ein sol­cher Aufruf kann z.B. so aus­se­hen:

<plugin>
   <groupId>com.atlassian.maven.plugins</groupId>
   <artifactId>atlassian-pdk</artifactId>
   <executions>
      <execution>
         <phase>package</phase>
         <goals>
            <goal>uninstall</goal>
            <goal>install</goal>
            <goal>rescan</goal>
         </goals>
      </execution>
   </executions>
</plugin>

Dabei kön­nen ver­schie­dene Goals ange­ge­ben wer­den, wel­che hin­ter­ein­an­der aus­ge­führt wer­den und z.B. das Plugin direkt nach dem kom­pi­lie­ren in einem lau­fen­den Confluence deinstal­lie­ren und die neue Version instal­lie­ren. Eine sinn­volle Reihenfolge wäre z.B. UninstallInstallRescan.

Vorsicht ist aller­dings bei der Benutzung des Confluence Trigger Plugin Moduls gebo­ten. Hat man einen Trigger in sei­ner atlassian-config.xml ein­ge­bun­den und instal­liert das Plugin über das PDK direkt in ein lau­fen­des Confluence, sollte nach einem Install kein expli­zi­tes Enable des Plugins aus­ge­führt wer­den. Der Grund dafür ist: der Job wird bereits beim Install ange­legt. Bei einem fol­gen­den Enable wird dann erneut ver­sucht, die­ser Job anzu­le­gen – was natür­lich fehl­schlägt und mit einer ObjectAlreadyExistsException quit­tiert wird. Ein Install und ggf. Rescan ist in die­sem Fall also aus­rei­chend.

Related Posts

Pin It on Pinterest