2016-03-21 16 views
0

Ich entwickle ein JIRA-Plugin, das unter JIRA 6 und 7 funktionieren sollte. Leider gibt es große API-Änderungen zwischen diesen Versionen und ich muss das Projekt mit verschiedenen Abhängigkeiten für jede JIRA-Version erstellen.Wie für verschiedene Umgebungen zu entwickeln

Der Kern meines Plugins sollte nicht zwischen den Versionen geändert werden, daher dachte ich über das Erstellen einer Abstraktionsschicht für die JIRA-API, die nur die Methoden bietet, die ich brauche.

Das Hauptproblem ist, dass ich absolut nicht weiß, wie man das Projekt strukturiert. Ich dachte daran, für jede JIRA-Version eine Verzweigung in git zu erstellen, aber dann müsste ich in jedem Zweig dieselben Änderungen am Kern vornehmen. Ich vermute, dass ich das irgendwann vergessen werde.

Hat jemand eine Idee, wie man dieses Problem lösen kann?

+0

Sind die Basis-Plugins auf Build-Tool 'maven'? – VinayVeluri

+3

machen Sie ein separates Modul ** Kern **, ** jira6 **, ** jira7 ** und vielleicht mehr ... und Sie können unterschiedliche Abhängigkeiten für ** jira6 ** und ** jire7 ** definieren. Branch hört sich nicht richtig an ... BTW: Möglicherweise müssen Sie ein ** api ** -Modul erstellen, das die Übersetzung zwischen den verschiedenen Versionen enthält ... – khmarbaise

Antwort

0

Drei verschiedene Module

Hier ist einer der vorgeschlagenen Struktur, dependencies

Durch die maven Änderungen Version Implementierung können eine Modulebene Versionsänderungen sein.

Und wieder für die Code-Basis Änderungen, muss git Verzweigung ändern, wo die Rückportierung stattfinden sollte.

Nehmen wir an, Version 6 ist in einem Zweig und die gewünschten Änderungen in der Version 7, Da es eine der üblichen Änderung ist, muss die Datei Core-Modul sein und es sollte auch eine gesunde Zusammenführung zwischen diesen sein Geäst.

0

Submodule verwenden.

Ihre Struktur sollte so mag:

+ ROOT Project 1 
| - Common (shared between your projects = submodule) 
| - Project specific code 


+ ROOT Project 2 
| - Common (shared between your projects = submodule) 
| - Project specific code 

Lesen Sie diese vollständige Antwort darüber, wie es zu benutzen und was kann man daraus ziehen.

How to use 2 GIT Repos in a Project? (git submodules, subtree)

enter image description here

Verwandte Themen