Maven Verbindung Java Projekt und Jenkins Build job

Hein_nieH

Bekanntes Mitglied
Hallo,

ich habe eine (hoffentlich einfache) Frage zu Jenkins.
In Eclipse habe ich ein Javaprojekt als Maven-Projekt angelegt.

Nun möchte ich in Jenkins zu diesem Projekt ein Build job (mit der Option Freehandprojekt) bauen.

An welcher Stelle erfolgt in Jenkins die Verbindung zum eigentlichen Java-Projekt?
Bei den Beiträgen in Google werde ich nicht richtig schlau :-(

Gruss Hein_nieH
 
Im Source-Code Management gibst du einfach den link zum repository an und den brach welchen er nehmen soll. Und unter Build must du dann noch die pom angeben. Das war es eigentlich schon
 
Hallo Thallius,
danke für die Antwort.

Ich habe da leider noch sehr sehr wenig Erfahrung.
Welches repository ist gemeinet? ("Im Source-Code Management gibst du einfach den link zum repository an"?)
Ist damit git gemeint?
Ich weiss auch nicht bei welcher Option ich das pom.xml eintragen muss.
Tut mir leid wegen der blöden Fragen, bin erst seit gestern dabei Jenkins auszuprobieren.

Gruss Hein_nieH
 
Kenne das Problem.

Also klar ist git gemeint. Ich hoffe doch mal du nutzt git oder? Ansonsten geht noch subversion relativ einfach. Alle anderen VCS sind nicht so einfach zu implementieren. Irgendwo liegt ja dein Repository file. Also entweder lokal oder auf GitHub o.ä, Bei Repository gibst du dann eben den Ordner oder die URL an.

Ach lese ich jetzt erst. Warum willst du Freestyle project nehmen wenn du ein Maven Projekt hast? Meine Angaben bezogen sich natürlich auf ein Maven Project
 
Du musst im Jenkins das Maven Integration Plugin und das git-Plugin installiert haben – in einer Standardinstallation sollte das aber der Fall sein.

Dann muss dein Projekt irgendwo liegen, wo es vom Jenkins aus erreichbar ist, am einfachsten ist's, ein öffentliches Projekt bei zB GitHub zu nutzen.
(Ob das auch mit einem rein lokalen git-Repo geht, hängt von der jeweiligen Jenkins-Installation ab. Mit ein paar mehr Informationen kann man da besser helfen 🙂 )


Beim Konfigurieren eines Freestyle-Jobs gibt es dann die Section "Source-Code-Management", dort musst du git auswählen, und unter "Repository-URL" die URL des git-Repos eintragen (bei GitHub zb über den Download-Button kopierbar.)
Credentials kannst du bei einem öffentlichen Repo leer lassen, der Rest kann auch so bleiben

Bildschirmfoto 2020-11-16 um 16.08.41.png


Außerdem findest du dort die Section "Buildverfahren", dort Maven auswählen:

Bildschirmfoto 2020-11-16 um 16.13.34.png

Und als Goal zb verify eintragen:

Bildschirmfoto 2020-11-16 um 16.14.44.png
 
Hallo,

danke für die Antworten, musste mal unterbrechen, sonst macht mein Hausdrachen Stress ...
Den Eingabeort für das pom.xml habe ich gefunden.

Probleme habe ich bei "Post Build Action -> Veröffentliche JUnit Testergebnisse ->Testberichte im xml-Format"
Der Eintrag "**/target/test-reports/*.xml" wird nicht akzeptiert.

Der Pfad in Eclipse zu meinem target-Folder lautet
C:\Users\E7470\Documents\Eclipse_Workspaces\MyWorkspace\MyProject\target

Im target-Folder liegen dort folgende Unterverzeichnisse:
classes
generated-sources
generated-test-sources
maven-status
surefire-reports
test-classes

Im Ordner surfire reports liegen die xml-Dateien für die Testergebnisse.
Bezieht sich die Eingabe bei Post Build Action auf den o.g Pfad target in eclipse?

Mein Ziel ist es zunächst einmal das Prinzip der Eingaben bei -Jenkins zu verstehen...
Gruss Hein_nieH
 
Bevor du dich an JUnit etc machst: läuft denn der Build im Jenkins durch, wenn du nur Repository und Maven Goals angibst?

Probleme habe ich bei "Post Build Action -> Veröffentliche JUnit Testergebnisse ->Testberichte im xml-Format"
Der Eintrag "**/target/test-reports/*.xml" wird nicht akzeptiert.
Was bedeutet "wird nicht akzeptiert" genau?

Beim Anlegen des Jobs ist eine Warnung dort normal, da dieses Verzeichnis erst beim Bauen erstellt wird – es ist also noch nicht vorhanden, also wird es angemeckert.

Bezieht sich die Eingabe bei Post Build Action auf den o.g Pfad target in eclipse?
Alle Angeben im Jenkins sind jeweils relativ zum Repository-Root.
Jenkins macht grob nichts anderes, als das Repository klonen, in das geklonte Verzeichnis wechseln, und dort Maven mit den angegebenen Goals aufzurufen.

In deinem Eclipse-Projekt dürfte das Repository-Root dieses Vorzeichen sein: "C:\Users\E7470\Documents\Eclipse_Workspaces\MyWorkspace\MyProject".
In Jenkins ist das ein anderes, da neu geklont wird, die Verzeichnisstruktur und Inhalt sieht aber vergleichbar aus (je nachdem was eingecheckt ist).
 
Hallo,
beim Anlegen eines neuen Jobs in Jenkins habe ich folgende Auswahlmöglichkeiten:
- Freestyle Project
- Pipeline
- Multikonfigurationsprojekt bauen
- Folder
- Git Hub Organization und
- Multibranche Pipeline

Wenn ich ein Maven Projekt integrieren möchte was wäre dann hier die richtige Auswahl?
Gruss Hein_nieH
 
Wenn ich ein Maven Projekt integrieren möchte was wäre dann hier die richtige Auswahl?
Grundsätzlich alles bis auf Folder, das kommt ganz drauf an, was du machen möchtest. Für den Anfang wird Freestyle Project das passende für dich sein.

  • Freestyle Project: ein einfacher Job
  • Pipeline: Ein Pipeline-Projekt (die "moderne" Version eines Freestyle Projects
  • Multikonfigurationsprojekt bauen: quasi ein Freestyle Project, welches dann mit verschiedenen Konfigurationen gebaut werden kann (zB verschiedenen Betriebsysteme und Java-Versionen)
  • Folder: Erstellt einen Ordner, in dem man dann Jobs angelegen kann
  • Git Hub Organization: Erstellt Jobs automatisch für Alle Repos einer Git Hub Organization
  • Multibranche Pipeline: erstellt Pipeline Jobs für alle Branches eines Repos
 
Hallo,

ich habe jetzt bei Source-Code-Management die option Git gewählt und als Repository URL folgendes eingetragen:

Dann konnte ich einen ersten Lauf starten.
Meine JUnitTest wurden nicht bestanden. Das tut hier aber momentan nicht zur Sache, da ich im Projekt den Quellcode verändert habe und die
Tests nachziehen muss.
Auch wenn die Tests fehlgeschlagen sind, kann ich mir die Testabdeckung mit Cobetura nun anzeigen lassen.
In meiner pom.xml ist hierzu alles vorbereitet.
In Jekins erscheint jedoch der Button zum Anzeigen der Testabdeckung nicht?

Ich hoffe ich nerve nicht allzusehr 🙂

Gruss Hein_nieH
 
ich habe jetzt bei Source-Code-Management die option Git gewählt und als Repository URL folgendes eingetragen:

Dann konnte ich einen ersten Lauf starten.
Das ist doch einfach nur irgendein völlig zufälliges Repository, welches nicht mal ein Java-Projekt ist?

Du hast damit dann jetzt im Jenkins das libgit2-Projekt gebaut, aber nicht dein Projekt.


Kannst du mal einen Screenshot der Job-Configuration machen? Ist ohne Bilder sonst schwierig, dabei zu helfen.
Und zusätzlich mal die Log-Ausgabe des Jobs zeigen?
 
BTW: Hast du irgendein Buch oder so, dem du sehr strikt folgen kannst?

Ohne eine wirklich haarkleine Anleitung oder entsprechende Grundwissen ist das nicht wirklich zu schaffen, und wenn du grad erst mit Maven und git anfängst, kann das Grundwissen ja noch nicht da sein.
 
Moinsen,

leider habe ich kein Buch. Ich gebe dir Recht das es ohne Grundwissen schwierig ist, aber das ist ja mein Ziel 🙂 zumindestens die Grundlagen zu verstehen.
So wie es aussieht gibt es auch kein deutschsprachiges Buch in dem Jenkins gut erklärt ist oder irre ich da.
Sonst hätte ich mir schon ein Buch gekauft.

Ich habe mal quick and dirty die Einstellungen der JobKonfiguration zusammengefasst.

Für heute muss ich leider die Zauberkiste ausschalten ... morgen geht es weiter.
An dieser Stelle schon einmal einen Dank für die Bemühungen ...

Gruss Hein_nieH
 

Anhänge

leider habe ich kein Buch. Ich gebe dir Recht das es ohne Grundwissen schwierig ist, aber das ist ja mein Ziel 🙂 zumindestens die Grundlagen zu verstehen.
Das Problem dabei ist, dass man für Jenkins schon Vorwissen zu Maven und git braucht, was du dir, wenn ich deine letzten Threads hier richtig verfolgt habe, auch fehlt 😉

So wie es aussieht gibt es auch kein deutschsprachiges Buch in dem Jenkins gut erklärt ist oder irre ich da.
Sonst hätte ich mir schon ein Buch gekauft.
Ich kenn zumindest keins, ich kenn allerdings auch kein Englischsprachiges und bin da vermutlich generell die falsche Ansprechperson...



Ganz grundsätzliche Fragen vorweg:
Wie hast du Jenkins installiert?
Liegt dein Projekt nur lokal bei dir oder ist es auch in irgendeinem Remote-Repository eingecheckt und öffentlich verfügbar?
 
Hallo,

ich habe Jenkins lokal installiert.
Mein Ziel ist es mich durch die Materie durchzuarbeiten, damit ich es dann mal irgendwann verstehe 🙂
Bei Maven läuft es jetzt schon besser. Da habe ich einige Beispiele probiert. Ebenfalls habe ich hierzu auch schon Literatur durchgearbeitet.
Gruss Hein_nieH
 
Dann muss dein Projekt irgendwo liegen, wo es vom Jenkins aus erreichbar ist, am einfachsten ist's, ein öffentliches Projekt bei zB GitHub zu nutzen.
(Ob das auch mit einem rein lokalen git-Repo geht, hängt von der jeweiligen Jenkins-Installation ab. Mit ein paar mehr Informationen kann man da besser helfen 🙂 )

Man kann bei dem URL Feld auch einfach einen Pfad zu einem lokalen Verzeichnis angeben. Das halte in in seinem Fall für deutlich einfacher als auch noch GitHub mit ins Spiel zu bringen
 
ich habe Jenkins lokal installiert.
Ins blaue geraten: als git-Repo kannst du dann mal "C:\Users\E7470\Documents\Eclipse_Workspaces\MyWorkspace\MyProject" eintragen.

Zusätzlich musst du weiter unten bei der Maven-Configuration das pom.xml-Feld leer lassen (oder nur "pom.xml" eintragen), die volle Angabe das Pfades ist da falsch.

Man kann bei dem URL Feld auch einfach einen Pfad zu einem lokalen Verzeichnis angeben. Das halte in in seinem Fall für deutlich einfacher als auch noch GitHub mit ins Spiel zu bringen
Deshalb der Satz in den Klammern, dass es von der Jenkins-Installation abhängt, ob es geht ^^
 
Hallo,

nach einer längeren Pause habe ich wieder Zeit mich mit den ersten Schritten in Jenkins zu befassen.
Ich habe mir ein Git-Repository angelegt und mit Jenkins versuchsweise ein einfaches "Hello World" Projekt gebaut.
Das funktioniert jetzt auch.

Probleme habe ich jetzt an zwei Stellen.
1. Auffinder der config.xml
Jenkins habe ich in Windows mit einem Setup installiert.
Eine JENKINS_Home-Variable habe ich eingerichtet (die verweist auf das Installationsverzeichnis von Jenkins).
Nur wenn ich mir die Systeminfo von Jenkins ansehe (http://localhost:8080/systemInfo) erhalte ich
JENKINS_HOMEC:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins
Mit dem Windowsexplorer kann ich bis zu folgenden Punkt navigieren
C:\Windows\system32\config\systemprofile\AppData\Local
Ich finde aber nicht das Unterverzeichnis "Jenkins".
Mein Ziel ist es an die config.xml von Jenkins heranzukommen,
Die befindet sich nämlich nicht im Installationsverzeichnis von Jenkins.

Was muss ich da im Explorer einstellen? Ich habe auf dem Rechner admin-Rechte.
Den Button zum Einstellen von Buildpath und der JENKIN_HOME Variable gibt es bei mir nicht.
(Dazu haben in diversen Foren auch schon andere User nachgefragt).

2. Einfügen der pom.xml
Wo genau muss ich in jenkins die pom.xml für mein kleines "HelloWorld" Projekt einfügen?
Ich dachte, dass Jenkins sich die pom.xml aus dem Repository automatisch lädt. Liege ich da richtig?

Gruss Hein_nieH
 
Wieder ein kleines Update

Das mit dem einbinden der pom.xml habe ich jetzt auch hinbekommen.
Jetzt ist für mich nur noch offen, wie ich den coverage report in jenkins anzeigen kann.
Was muss ich da möglicherweise in Jenkins installieren?

Gruss Hein_nieH
 
Angezeigt wird folgendes Verzeichis:
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins

Tatsächlich befindet sich das Verzeichnis aber unter:
C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins
Die beiden sind doch völlig identisch? 😵

Das mit dem einbinden der pom.xml habe ich jetzt auch hinbekommen.
Jetzt ist für mich nur noch offen, wie ich den coverage report in jenkins anzeigen kann.
Was muss ich da möglicherweise in Jenkins installieren?
Du musst 1) den Coverage report generieren lassen und 2) den im Jenkins anzeigen lassen.

1 löst du mit Maven und einem Plugin (zB Jacoco), 2 passiert dann im Jenkins, dort musst du für das jeweilige Report-Format das Plugin installieren und im Job konfigurieren, dass dieser ausgwertet/angezeigt werden soll.
 

Zurück
Oben