# Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job)



## PinkMuffin (25. Jan 2021)

Also, ich hätte mal wieder ein (hoffentlich) kleines Problem mit Jenkins, bzw dadurch auch mit Maven.

Ich habe das Git-Parameter-Plugin, allerdings macht es nicht das, was ich dachte, dass es machen würde:
Ich möchte, dass ich einen Tag-Namen angeben kann, der soll dann an maven übergeben und als Tag-Name und Namen für den nächsten Branch verwendet werden.
Mit dem Git-Parameter-Plugin kann ich allerdings nur aus einer Liste der bestehenden Tags auswählen, da ich ja aber ein neues Tag setzen will, kann ich es damit wohl nicht machen.

Ich wollte jetzt ausprobieren, ob ich mit diesen maven-goals wenigstens einen Branch erstellen kann, der nach einem bestehendem git-Tag benannt ist

```
release:clean release:prepare release:branch branchname=param1 release:perform --batch-mode -Darguments="-DskipTests" -Dparam1=%JOB_PARAM_1%
```
(param1 ist der git-Tag-Parameter)

Dieser Build scheitert allerdings bereits an der POM. Diese Eingaben sind das Einzige, was ich am Build verändert habe, vorher hatte er keine Probleme, weiß jemand, inwiefern ich mit diesen goals noch etwas in der POM einstellen muss?

(Der Build ist ein Maven-Job und der letzte (erfolgreiche) Build ist 3,5 Jahre her, falls das wichtig ist)


----------



## PinkMuffin (5. Feb 2021)

Update & Frage:
Jenkins erstellt jetzt automatisch einen branch (war ein dummer Denkfehler, das Git-Parameter-Plugin wurde gar nicht benötigt, ich hab den Branch-Name ja auch als normalen Textparameter mitgeben können, damit hat es geklappt).
Das mit der POM lag an der scm-Einstellung.
Allerdings weiß ich noch immer nicht, wie ich dem Branch automatisch ein Git-Tag zuweisen kann (das den gleichen Namen wie der Branch hat), bzw wie ich wenigstens einen Parameter erstellen kann, der es ermöglicht, eine message zum Job-Build zu schreiben.


----------



## mihe7 (9. Feb 2021)

PinkMuffin hat gesagt.:


> Der Build ist ein Maven-Job und der letzte (erfolgreiche) Build ist 3,5 Jahre her, falls das wichtig ist


Es war auf jeden Fall sehr lustig, zu lesen  

Du könntest mal ${GIT_BRANCH} probieren.


----------



## PinkMuffin (9. Feb 2021)

mihe7 hat gesagt.:


> Es war auf jeden Fall sehr lustig, zu lesen


Na immerhin ^^



mihe7 hat gesagt.:


> Du könntest mal ${GIT_BRANCH} probieren.


Danke, aber so wie ich das verstaden habe, kann ich mit ${GIT_BRANCH} den aktuellen Pfad als Git-Variable setzen, allerdings ist das nicht ganz, was ich möchte. 
Generell sind die GIT-Variablen, die ich bisher gesehen habe, alle dafür da, um ein spezifisches, bereits bestehendes Git-Tag für irgendwas zu verwenden. 
Ich wollte einen spezifischen Branch, der bereits erzeugt wird, automatisch mit einem gleichnamigen git-tag versehen. Also kein bestehendes aufrufen, sondern sein neues setzen. Allerdings weiß ich nicht, wie ich das in der Zeile 

```
release:clean release:prepare release:perform release:branch --batch-mode -Darguments="-DskipTests"
```
anwenden kann, da hier ja maven-goals ausgeführt werden 🤔


----------

