Die letzte Minorversion von Spring Cloud Sluth ist 3.1. Sie können die Filiale 3.1.x für die neuesten Commits überprüfen.
Warnung | Spring Cloud -Sleuth funktioniert nicht mit Spring Boot 3.x weiter. Die letzte Hauptversion von Spring Boot, die Sleauth unterstützt, ist 2.x. |
Der Kern dieses Projekts wurde in das Micrometer -Tracing -Projekt verschoben, und die Instrumente werden in Micrometer und alle jeweiligen Projekte verschoben (nicht mehr alle Instrumente werden in einem einzigen Repository durchgeführt.
Sie können die Migrationshandbuch für die Micrometer -Tracing -Migration überprüfen, um zu erfahren, wie Sie von Federwolken -Sleuth bis zur Mikrometerverfolgung migrieren.
Spring Cloud-Sleuth bietet eine Auto-Konfiguration für die Federschuh für die verteilte Verfolgung.
Sleuth konfiguriert alles, was Sie benötigen, um loszulegen. Dies umfasst, wo Trace -Daten (Spans) gemeldet werden, wie viele Spuren zu halten (Stichproben), wenn Remotefelder (Gepäck) gesendet werden und welche Bibliotheken nachverfolgt werden.
Fügen Sie den Klassenpfad einer Spring -Boot -Anwendung (zusammen mit einer Tracer -Implementierung) Spring -Cloud -Sleuth hinzu und Sie sehen Trace -IDs in Protokollen. Beispiel für Sleuth mit mutigem Tracer:
<!-Frühlingswolke-Sleuth erfordert eine Federwolkenbom-> <DeappercyManagement> <Depecies> <De vorangehen> <GruppeId> org.springFramework.cloud </gruppeId> <artifactid> Spring-Cloud-Abhängigkeiten </artifactid> <!-Bieten Sie die neueste Stable Frühling Cloud Release-Trainversion (z. B. 2020.0.0)-> <version> $ {Release.version.version} </Version> <Typ> pom </type> <Scope> Import </Scope> </abhängig> </Abhängigkeiten> </Abhängigkeitsmanagement> <Deangcies> <!-Start-Web-Support-> <De vor Ort> <gruppeID> org.springframework.boot </Groupid> <artifactid> Spring-Boot-Starter-Web </artifactid> </abhängig> <!-Sleuth mit mutiger Tracer-Implementierung-> <De vor Ort> <gruppeID> org.springframework.cloud </Groupid> <artifactid> Spring-Cloud-Starter-Sleuth </artifactid> </abhängig> </Abhängigkeiten>
Betrachten Sie den folgenden HTTP -Handler:
@RestControllerPublic Class DemoConTroller {private static logger log = loggerfactory.getLogger (DemoconTroller.class);@RequestMapping ("/") public String home () {log.info ("Home"); zurück "Hello World"; } }
Wenn Sie diesen Handler zu einem Controller hinzufügen, können Sie sehen, dass die Anrufe nach home()
in den Protokollen nachverfolgt werden (beachten Sie die 0b6aaf642574edd3
-IDs).
2020-10-21 12: 01: 16.285 Info [, 0B6AAF642574EDDD3,0B6AAF642574EDD3, TRUE] 289589 --- [NIO-9000-EXEC-1] Democontroller: Handling Home!
Notiz | Anstatt die Anfrage im Handler ausdrücklich zu protokollieren, können Sie logging.level.org.springframework.web.servlet.DispatcherServlet=DEBUG festlegen. |
Notiz | Setzen Sie spring.application.name=myService (zum Beispiel), um den Servicenamen sowie die Spuren- und Spann -IDs anzuzeigen. |
Bitte besuchen Sie die Dokumentationsseite, um mehr über das Projekt zu erfahren.
Um die Quelle zu erstellen, müssen Sie JDK 1.8 installieren.
Spring Cloud verwendet Maven für die meisten baubedingten Aktivitäten, und Sie sollten in der Lage sein, durch Klonen des Projekts, an dem Sie interessiert sind, ziemlich schnell auf den Boden zu gehen und zu tippen
$ ./mvnw install
Notiz | Sie können auch Maven (> = 3.3.3) selbst installieren und den mvn -Befehl anstelle von ./mvnw in den folgenden Beispielen ausführen. Wenn Sie dies tun, müssen Sie möglicherweise auch -P spring hinzufügen, wenn Ihre lokalen Maven -Einstellungen keine Repository -Deklarationen für Frühlings -Artefakte vor der Veröffentlichung enthalten. |
Notiz | Beachten Sie, dass Sie möglicherweise die für Maven verfügbare Speichermenge erhöhen müssen, indem Sie eine Umgebungsvariable MAVEN_OPTS mit einem Wert wie -Xmx512m -XX:MaxPermSize=128m einstellen. Wir versuchen, dies in der .mvn -Konfiguration zu behandeln. Wenn Sie also feststellen, dass Sie dies tun müssen, um einen Build erfolgreich zu machen, erhöhen Sie bitte ein Ticket, um die Einstellungen zur Quellungssteuerung hinzuzufügen. |
Die Projekte, die Middleware (dh Redis) zum Testen erfordern, erfordern im Allgemeinen, dass eine lokale Instanz von [Docker] (https://www.docker.com/get-started) installiert und ausgeführt wird.
Das Feder-Cloud-Build-Modul verfügt über ein "DOCS" -Profil. Wenn Sie dies anschalten, wird versucht, Asciidoc-Quellen aus src/main/asciidoc
zu erstellen. Als Teil dieses Prozesses wird es nach einem README.adoc
suchen und es verarbeiten, indem alle Einschlüsse geladen werden, aber nicht analysieren oder rendern, sondern nur auf ${main.basedir}
kopiert (standardmäßig ${basedir}
, dh das Stamm des Projekts). Wenn es Änderungen in der Readme gibt, wird es nach einem Maven -Build als modifizierter Datei an der richtigen Stelle angezeigt. Verpflichten Sie es einfach und drücken Sie die Veränderung.
Wenn Sie keine IDE -Präferenz haben, empfehlen wir Ihnen, die Spring Tools Suite oder die Eclipse bei der Arbeit mit dem Code zu verwenden. Wir verwenden das M2eclipse Eclipse -Plugin für Maven -Unterstützung. Andere IDES und Tools sollten ebenfalls ohne Probleme funktionieren, solange sie Maven 3.3.3 oder besser verwenden.
Für Spring Cloud -Projekte müssen das „Spring' -Maven -Profil aktiviert werden, um den Feder -Meilenstein und die Schnappschuss -Repositories aufzulösen. Verwenden Sie Ihre bevorzugte IDE, um dieses Profil so festzulegen, dass sie aktiv sind, oder Sie können Erstellungsfehler erleben.
Wir empfehlen das M2eclipse Eclipse -Plugin bei der Arbeit mit Eclipse. Wenn Sie M2eclipse noch nicht installiert haben, ist sie auf dem "Eclipse Marketplace" erhältlich.
Notiz | Ältere Versionen von M2E unterstützen Maven 3.3 nicht. Sobald die Projekte in Eclipse importiert wurden, müssen Sie M2eclipse auch mitgeteilt, dass sie das richtige Profil für die Projekte verwenden sollen. Wenn Sie viele verschiedene Fehler im Zusammenhang mit den POMs in den Projekten sehen, überprüfen Sie, ob Sie eine aktuelle Installation haben. Wenn Sie M2E nicht aktualisieren können, fügen Sie das "Spring" -Profil zu Ihren settings.xml . Alternativ können Sie die Repository -Einstellungen aus dem "Spring" -Profil des übergeordneten POM in Ihre settings.xml kopieren.xml. |
Wenn Sie es vorziehen, m2eclipse nicht zu verwenden, können Sie mit dem folgenden Befehl Eclipse -Projektmetadaten erstellen:
$ ./mvnw eclipse: eclipse
Die generierten Eclipse -Projekte können importiert werden, indem import existing projects
im Menü file
importiert werden.
Spring Cloud wird unter der nicht-restriktiven Apache 2.0-Lizenz veröffentlicht und folgt einem sehr Standard-Github-Entwicklungsprozess unter Verwendung von Github-Tracker für Probleme und das Zusammenführen von Pull-Anfragen in Master. Wenn Sie auch etwas Triviales beitragen möchten, zögern Sie bitte nicht, sondern befolgen Sie die folgenden Richtlinien.
Bevor wir einen nicht trivialen Patch oder einen Pull-Anfrage akzeptieren, müssen Sie die Lizenzvereinbarung von Mitwirkenden unterzeichnen. Durch die Unterzeichnung der Vereinbarung des Mitwirkenden gewährt niemandem Rechte an dem Haupt -Repository, aber dies bedeutet, dass wir Ihre Beiträge akzeptieren können, und Sie erhalten einen Autor -Kredit, wenn wir dies tun. Aktive Mitwirkende könnten gebeten werden, sich dem Kernteam anzuschließen, und angesichts der Fähigkeit, Pull -Anfragen zusammenzuführen.
Dieses Projekt hält sich an den Verhaltenskodex für den Mitwirkenden. Durch die Teilnahme wird erwartet, dass Sie diesen Code aufrechterhalten. Bitte melden Sie ein inakzeptables Verhalten an [email protected].
Nichts davon ist für eine Pull -Anfrage von wesentlicher Bedeutung, aber sie werden alle helfen. Sie können auch nach der ursprünglichen Pull -Anfrage hinzugefügt werden, aber vor einer Zusammenführung.
Verwenden Sie die Konventionen des Spring Framework Code Format. Wenn Sie Eclipse verwenden, können Sie Formatiereinstellungen mithilfe der eclipse-code-formatter.xml
Datei aus dem Spring Cloud Build-Projekt importieren. Wenn Sie intellij verwendet werden, können Sie das Eclipse -Code -Formatierer -Plugin verwenden, um dieselbe Datei zu importieren.
Stellen Sie sicher, dass alle neuen .java
-Dateien einen einfachen Javadoc -Unterricht mit mindestens einem @author
-Tag haben, das Sie identifiziert, und vorzugsweise mindestens einen Absatz darüber, wofür die Klasse ist.
Fügen Sie den ASF -Lizenz -Header -Kommentar allen neuen .java
-Dateien hinzu (kopieren Sie aus vorhandenen Dateien im Projekt).
Fügen Sie sich den .java -Dateien, die Sie erheblich ändern (mehr als kosmetische Änderungen), als @author
hinzu.
Fügen Sie einige Javadocs hinzu und wenn Sie den Namespace ändern, einige XSD -DOC -Elemente.
Ein paar Unit -Tests würden auch sehr helfen - jemand muss es tun.
Wenn niemand sonst Ihre Filiale verwendet, können Sie ihn bitte gegen den aktuellen Master (oder eine andere Zielzweig im Hauptprojekt) neu ausführen.
Befolgen Sie beim Schreiben einer Commit-Nachricht diese Konventionen. Wenn Sie ein vorhandenes Problem festlegen, fügen Sie bitte Fixes gh-XXXX
am Ende der Commit-Nachricht hinzu (wobei XXXX die Ausgabennummer ist).
Der Frühlingswolkenbau wird mit einer Reihe von CheckStyle -Regeln ausgestattet. Sie finden sie im Modul für den spring-cloud-build-tools
. Die bemerkenswertesten Dateien unter dem Modul sind:
Feder-Cloud-Build-Tools/
└── Src ├── Checkstyle │ └── Checkstyle-Unterdrückungen.xml (3) └── Haupt └── Ressourcen ├── Checkstyle-Header.txt (2) └── checkstyle.xml (1)
Standard -Checkstyle -Regeln
Datei -Header -Setup
Standard -Unterdrückungsregeln
CheckStyle -Regeln sind standardmäßig deaktiviert . Um Ihrem Projekt Checkstyle hinzuzufügen, definieren Sie einfach die folgenden Eigenschaften und Plugins.
pom.xml
<Porpies> <maven-Checkstyle-plugin.failsonError> true </maven-Checkstyle-Plugin.FailsonError> (1) <Maven-Checkstyle-Plugin.Failsonviolation> True </maven-Checkstyle-Plugin.Failsonviolation> (2) <Maven-Checkstyle-Plugin </maven-checkstyle-plugin.includetestSourcedirectory> (3) </properties> <Build> <plugins> <PLUGIN> (4) <GruppeId> io.spring.javaFormat </Groupid> <artifactid> Spring-JavaFormat-Maven-Plugin </artifactid> </plugin> <Plugin> (5) <Gruppen Sie> org.apache.maven.plugins </Groupid> <artifactid> maven-checkstyle-plugin </artifactid> </plugin> </plugins> <Berbits> <plugins> <Plugin> (5) <Gruppen Sie> org.apache.maven.plugins </Groupid> <artifactid> maven-checkstyle-plugin </artifactid> </plugin> </plugins> </berichten> </bauen>
Fehlschlägt den Build auf Checkstyle -Fehlern
Scheitert den Build auf Scheckstilverletzungen
CheckStyle -Analysen auch die Testquellen
Fügen Sie das Spring Java -Format -Plugin hinzu, das Ihren Code neu formatiert, um die meisten Regeln für Checkstyle -Formatierung zu bestehen
Fügen Sie Ihren Build- und Berichterstattungsphasen Checkstyle -Plugin hinzu
Wenn Sie einige Regeln unterdrücken müssen (z. B. die Länge der Linie muss länger sein), reicht es aus, dass Sie eine Datei unter ${project.root}/src/checkstyle/checkstyle-suppressions.xml
mit Ihren Unterdrückungen definieren. Beispiel:
projectoot/src/checkstyle/checkstyle-suppressions.xml
<? xml Version = "1.0"?> <! DocType -Unterdrückung öffentlich "-// Welpenkriechen // DTD-Unterdrückung 1.1 // en" "https://www.puppycrawl.com/dtds/suppression_1_1.dtd"> <Suppression> <Suppress files = ".*configSerVerApplication.java" schätzt = "HellilityClassconstructor"/> <Suppress files = ".*configClientWatch.java" schätzt = "LinengthCheck"/> </unterdrückt>
Es ist ratsam, die ${spring-cloud-build.rootFolder}/.editorconfig
und ${spring-cloud-build.rootFolder}/.springformat
zu Ihrem Projekt zu kopieren. Auf diese Weise werden einige Standard -Formatierungsregeln angewendet. Sie können dies tun, indem Sie dieses Skript ausführen:
$ curl https://raw.githubuSercontent.com/spring-cloud/spring-cloud-build/3.1.x/.editorconfig -o .editorconfig $ touch .springFormat
Um Intellij einzurichten, sollten Sie unsere Codierungskonventionen und Inspektionsprofile importieren und das CheckStyle -Plugin einrichten. Die folgenden Dateien finden Sie im Spring Cloud Build -Projekt.
Feder-Cloud-Build-Tools/
└── Src ├── Checkstyle │ └── Checkstyle-Unterdrückungen.xml (3) └── Haupt └── Ressourcen ├── Checkstyle-Header.txt (2) ├── checkstyle.xml (1) └── Intellij ├── intellij_project_defaults.xml (4) └── Intellij_spring_boot_java_conventions.xml (5)
Standard -Checkstyle -Regeln
Datei -Header -Setup
Standard -Unterdrückungsregeln
Projektverlagerungen für IntelliJ, die den größten Teil der CheckStyle -Regeln anwenden
Projektstilkonventionen für Intellij, die den größten Teil der Checkstyle -Regeln anwenden
Abbildung 1. Codestil
Gehen Sie zu File
→ Settings
→ Editor
→ Code style
. Klicken Sie auf das Symbol neben dem Abschnitt Scheme
. Klicken Sie dort auf den Wert Import Scheme
und wählen Sie die Intellij IDEA code style XML
. Importieren Sie die spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml
Datei.
Abbildung 2. Inspektionsprofile
Gehen Sie zu File
→ Settings
→ Editor
→ Inspections
. Klicken Sie auf das Symbol neben dem Profile
. Klicken Sie auf das Import Profile
und die spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml
Datei importieren.
Checkstyle
Um Intellij mit CheckStyle arbeiten zu lassen, müssen Sie das Checkstyle
-Plugin installieren. Es ist ratsam, auch die Assertions2Assertj
zu installieren2assertj, um die Jungit -Behauptungen automatisch umzuwandeln
Gehen Sie zu File
→ Settings
→ Other settings
→ Checkstyle
. Klicken Sie im Abschnitt Configuration file
auf das Symbol +
. Dort müssen Sie definieren, woher die Checkstyle -Regeln ausgewählt werden sollen. Im obigen Bild haben wir die Regeln aus dem geklonten Spring Cloud Build -Repository ausgewählt. Sie können jedoch auf das Github-Repository des Spring Cloud Builds https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/main/resources/checkstyle.xml
z checkstyle.xml
https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/main/resources/checkstyle.xml
). Wir müssen die folgenden Variablen bereitstellen:
checkstyle.header.file
-Bitte verweisen Sie auf die Spring spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
Datei entweder in Ihrem klonierten Repo oder über die https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
url.
checkstyle.suppressions.file
- Standardunterdrückung. Bitte spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
url.
checkstyle.additional.suppressions.file
- Diese Variable entspricht den Unterdrückungen in Ihrem lokalen Projekt. ZB, Sie arbeiten an spring-cloud-contract
. Zeigen Sie dann auf den Ordner project-root/src/checkstyle/checkstyle-suppressions.xml
. Beispiel für spring-cloud-contract
wäre: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml
.
Wichtig | Denken Sie daran, den Scan Scope auf All sources zu setzen, da wir Checkstyle -Regeln für Produktions- und Testquellen anwenden. |
Die Frühlingswolke-Build entlang des basepom:duplicate-finder-maven-plugin
, das es ermöglicht, doppelte und widersprüchliche Klassen und Ressourcen auf dem Java-Klassenpfad zu markieren.
Der doppelte Finder ist standardmäßig aktiviert und wird in der verify
der Phase Ihres Maven-Builds ausgeführt. Er wird jedoch nur in Ihrem Projekt wirksam, wenn Sie das duplicate-finder-maven-plugin
zum build
Abschnitt des Projecst- pom.xml
hinzufügen.
pom.xml
<Build> <plugins> <plugin> <gruppe> org.basepom.Maven </gruppeId> <artifactId> Duplicat-Finder-Maven-Plugin </artifactId> </plugin> </plugins> </bauen>
Für andere Eigenschaften haben wir Standardeinstellungen festgelegt, die in der Plugin -Dokumentation aufgeführt sind.
Sie können sie problemlos überschreiben, aber den Wert der ausgewählten Eigenschaft einstellen, die mit duplicate-finder-maven-plugin
vorangestellt sind. Setzen Sie beispielsweise duplicate-finder-maven-plugin.skip
auf true
, um Duplikate in Ihren Build zu überspringen.
Wenn Sie Ihrem Setup ignoredClassPatterns
oder ignoredResourcePatterns
hinzufügen müssen, stellen Sie sicher, dass Sie sie im Abschnitt Plugin -Konfiguration Ihres Projekts hinzufügen:
<Build> <plugins> <plugin> <gruppe> org.basepom.Maven </gruppeId> <artifactId> Duplicat-Finder-Maven-Plugin </artifactid> <Configuration> <ignoredClaSpatterns> <ignoredClaSpattern> org.joda.time.base.bukteTimeTime </IgnoredClaSpattern> <ignoredClaSpattern>.*Modul-Info </ignoredClaSpattern> </ignoredClassSpatterns> <ignoredResourcepatterns> <ignoredResourcePuffern> ChangeLog.txt </IgnoredResourcePuferrn> </ignoredResourcepatterns> </Konfiguration> </plugin> </plugins> </bauen>