2014-02-14 9 views
8

Dies könnte eine komische Frage sein, aber das passiert mir. Kann mir jemand sagen, an welchem ​​Speicherort Jenkins sich befindet, wenn wir ein Maven-Projekt erstellen? Ich habe bei der Konfiguration von Jenkins die Option Default (~/.m2/repository) gewählt, aber das Verhalten scheint ein wenig anders zu sein. Obwohl sich dieses myown.jar in meinem lokalen Repository befindet, d. H. In /home/username/.m2, wird der Fehler angezeigt, dass myown.jar nicht gefunden wird. Also muss ich einen Job für dieses myown Projekt erstellen, es bauen und dann wird der Fehler gelöst.Jenkins Repository-Standort

Nicht nur das, wenn ich das Jenkins-Skript in Startup legte, d. H. /usr/bin/java -jar <warpath>.war, es heruntergeladen alle Abhängigkeiten von meinen Projekten wieder während der Erstellung, obwohl ich das konfigurierte Projekt 5 mal gebaut hatte, bevor das Skript in Startup !! Ist es nicht komisches Verhalten? Welchen Speicherort verwendet Jenkins? Oder gibt es etwas, was ich vermisse?

Antwort

1

Es sollte verwenden, was auch immer Sie in /home/username/.m2/settings.xml konfiguriert haben - denken Sie daran, Benutzername wird derjenige sein, der effektiv den Jenkins-Server ausführt. Wenn Ihre aktuelle Maven-Version jedoch einige settings.xml im Verzeichnis/conf hat, ist diese eine Priorität im Vergleich zu Ihrer/home

Sobald Sie diese settings.xml finden (oder erstellen), weisen Sie darauf hin wo immer Sie Ihr lokales Repository benötigen

0

Standardmäßig verwendet Jenkins das lokale Repository ~/.m2/repository unter dem Benutzerkonto, mit dem Jenkins ausgeführt wird.

Es kann konfiguriert werden, ein privates Repository für ein Build zu verwenden, aber es klingt, als ob Sie das nicht konfiguriert haben.

Wenn ich in Start dh/usr/bin/java -jar .war, es heruntergeladen alle Abhängigkeiten meiner Projekte wieder Jenkins Skript setzen, während es den Bau, obwohl ich vor der Inbetriebnahme der eingestellten Projekt 5-mal gebaut hatte das Skript im Start

Von diesem klingt es, als ob Ihr Startskript möglicherweise als ein anderer Benutzer ausgeführt wird? Vielleicht der root Benutzer?

Das Ausführen von Jenkins als root würde dazu führen, dass es ein anderes lokales Repository verwendet, d. H. /root/.m2/repository. Sie könnten prüfen, ob dort ein Maven-Repository vorhanden ist, und wenn ja, stellen Sie sicher, dass Jenkins niemals als root ausgeführt wird.

1

Ich empfehle die Verwendung von configuration file provider plugin Maven-Einstellungen zu verwalten.

Das Plugin ermöglicht die Verwaltung von Konfigurationsdateien über die Jenkins-Benutzeroberfläche und die einfache Auswahl für jedes Maven-Projekt.

7

tatsächlich hängt es von der Konfiguration jedes einzelnen Maven-Projekts ab. Standardmäßig verwendet Jenkins das lokale Repository JENKINS_HOME_DIR/.m2/repository, wenn Sie das Maven installieren, indem Sie das Kontrollkästchen Automatisch installieren aktivieren, andernfalls wird das lokale /home/username/.m2/repository verwendet.

Sie können diesen Standardspeicherort jedoch ändern, indem Sie die settings.xml-Datei in ~/.m2/settings einrichten.

xml
    OR 

für globle Verwendung können Sie es ändern von jenkins_home_dir/conf

zum Beispiel, wenn Sie Maven by Tick automatisch installieren Checkbox Installieren

Step1. die Maven-Installation für ein bestimmtes Projekt in jenkins Hause wählen

Verzeichnis
$ cd Jenkins_home_dir/tools/hudson.tasks.Maven_MavenInstallation/ 

Step 2. Änderung der localRepository in settings.xml

Die Hierarchie für settings.xml ist Benutzer .m2 Verzeichnis und wenn es das nicht finden konnte, wird es versuchen, das in {maven home}/conf/settings.xml zu finden.

1

auf Unix-System Gebrauch find Werkzeug,

[[email protected] ~]# sudo find/-name ".m2" 
/root/.m2 
/var/lib/jenkins/.m2 

Sein unter /var/lib/jenkins auf rhel (JENKINS_HOME_DIR sollte /var/lib/jenkins sein)

[[email protected] ~]# ll /var/lib/jenkins/.m2/repository/ 
total 8 
drwxr-xr-x. 4 jenkins jenkins 35 Apr 25 00:12 asm 
drwxr-xr-x. 3 jenkins jenkins 38 Apr 23 20:18 backport-util-concurrent 
drwxr-xr-x. 3 jenkins jenkins 17 Apr 25 00:12 ch 
drwxr-xr-x. 3 jenkins jenkins 25 Apr 23 20:17 classworlds 
drwxr-xr-x. 23 jenkins jenkins 4096 Apr 25 03:49 com 
drwxr-xr-x. 3 jenkins jenkins 25 Apr 23 20:17 commons-cli 
drwxr-xr-x. 3 jenkins jenkins 27 Apr 23 20:17 commons-codec 
drwxr-xr-x. 3 jenkins jenkins 26 Apr 23 20:17 commons-dbcp 
drwxr-xr-x. 3 jenkins jenkins 24 Apr 23 20:18 commons-io 
drwxr-xr-x. 3 jenkins jenkins 26 Apr 23 20:18 commons-lang 
drwxr-xr-x. 4 jenkins jenkins 56 Apr 24 22:45 commons-logging 
drwxr-xr-x. 3 jenkins jenkins 26 Apr 23 20:17 commons-pool 
drwxr-xr-x. 3 jenkins jenkins 27 Apr 25 00:11 eventstream 
drwxr-xr-x. 6 jenkins jenkins 63 Apr 25 00:29 io 
drwxr-xr-x. 6 jenkins jenkins 69 Apr 25 00:11 javax 
drwxr-xr-x. 3 jenkins jenkins 19 Apr 24 23:09 jline 
drwxr-xr-x. 3 jenkins jenkins 23 Apr 24 23:09 joda-time 
drwxr-xr-x. 3 jenkins jenkins 19 Apr 23 20:17 junit 
drwxr-xr-x. 3 jenkins jenkins 19 Apr 24 22:45 log4j 
drwxr-xr-x. 9 jenkins jenkins 104 Apr 25 00:11 net 
drwxr-xr-x. 3 jenkins jenkins 17 Apr 25 00:12 nz 
drwxr-xr-x. 3 jenkins jenkins 18 Apr 25 00:12 ognl 
drwxr-xr-x. 34 jenkins jenkins 4096 Apr 25 00:12 org 
drwxr-xr-x. 3 jenkins jenkins 20 Apr 24 23:09 software 
drwxr-xr-x. 3 jenkins jenkins 21 Apr 25 01:47 xmlpull 
drwxr-xr-x. 3 jenkins jenkins 22 Apr 25 01:47 xpp3 
2

unter Windows als Windows-Dienst, wenn installiert und ausgeführt, Dies kann standardmäßig wie folgt sein.

C:\Windows\SysWOW64\config\systemprofile\.m2\repository

C:\Windows\System32\config\systemprofile\.m2\repository

+0

Wow! Woher wussten Sie das? – kylexy1357

0

In Ubuntu, fand ich die Repositoryposition unter /var/lib/jenkins/.m2 Und ich gerade gelöscht, dass ein und stattdessen einen Link zu meiner bestehenden Maven-Repository gemacht. ..