Ich habe eine Jenkins mit dem M2-Release-Plugin. Ich habe einen Job für den Aufbau und die Freigabe.Wie bestimmte Zweigstelle mit Jenkins freizugeben
Das verwendete Repository verfügt über Master- und Feature/Bugfix-Zweige. Der Job ist so konfiguriert, dass alle Zweige erstellt werden. Der Masterzweig wird zusätzlich bereitgestellt. Alle stabilen Änderungen werden in den Master-Zweig übernommen, aber die letzten Änderungen (die noch nicht funktionieren) werden in einem Bugfix-Zweig vorgenommen. Daher wird der neueste Build (mvn install) in dieser Bugfix-Verzweigung erstellt.
Wenn ich dieses Projekt veröffentlichen will, nimmt Jenkins die neueste gebaute Revision (der Bugfix-Zweig) und versucht, dies zu veröffentlichen. Aufgrund von SNAPSHOT-Abhängigkeiten schlägt dies fehl.
Ich könnte natürlich den "branch to build" auf "master" beim Freigeben setzen. Aber a) Ich müsste das nach der Veröffentlichung zurücksetzen und b) das wäre jedes Mal notwendig, wenn ich es veröffentlichen möchte.
Ich könnte diesen Build auch mit Verzweigungsoptionen parametrisieren, aber dann wird dieser Job nicht von scm commits ausgeführt.
Also meine Frage ist: Gibt es einen Weg/Plugin, um Jenkins zu sagen, einen bestimmten Zweig zu veröffentlichen?
EDIT: ich meine pom.xml hinzugefügt, so dass Sie eine einfach liefern können beispielsweise
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>my.parent.gid</groupId>
<artifactId>my.iarent.aid</artifactId>
<version>1.0.0</version>
</parent>
<name>Project Name</name>
<groupId>my.project.gid</groupId>
<artifactId>my.project.aid</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<url>${project_url}</url>
<ciManagement>
<system>${project_ciManagement.system}</system>
<url>${project_ciManagement.url}</url>
</ciManagement>
<scm>
<!-- read access -->
<connection>${project_scm.connection}</connection>
<!-- write access (release-plugin) -->
<developerConnection>${project_scm.developerConnection}</developerConnection>
<!-- browser access -->
<url>${project_scm.url}</url>
<tag>HEAD</tag>
</scm>
<properties>
<compiler.javaVersion>1.7</compiler.javaVersion>
<scm.repo>repo_name</scm.repo>
</properties>
<modules>
<module>Module1</module>
<module>Module2</module>
<module>Module3</module>
</modules>
Eigentlich glaube ich nicht, ich habe den automatisierten Aspekt Ihrer Frage angesprochen, sorry! – HomerPlata