A última versão menor de Spring Cloud Sleuth é 3.1. Você pode verificar a filial 3.1.x para obter as últimas confirmações.
Aviso | O Spring Cloud Sleuth não funcionará com a bota da primavera 3.x em diante. A última versão principal da Spring Boot que o Sleuth suportará é 2.x. |
O núcleo deste projeto foi transferido para o projeto de rastreamento de micrômetros e as instrumentações serão movidas para o micrômetro e todos os respectivos projetos (todas as instrumentações não serão feitas em um único repositório.
Você pode verificar o guia de migração de rastreamento de micrômetros para aprender a migrar do rastreamento do Spring Cloud Sleuth para o micrômetro.
O Spring Cloud Sleuth fornece configuração automática de inicialização da mola para rastreamento distribuído.
Sleuth configura tudo o que você precisa para começar. Isso inclui onde são relatados dados de rastreamento (vãos), quantos traços a serem mantidos (amostragem), se os campos remotos (bagagem) forem enviados e quais bibliotecas são rastreadas.
Adicione o Spring Cloud Sleuth ao caminho de classe de um aplicativo de inicialização de primavera (juntamente com uma implementação do traçador) e você verá IDs de rastreamento em logs. Exemplo de detetive com Brave Tracer:
<!-Spring Cloud Sleut requer um nascimento da nuvem de primavera-> <DependencyManagement> <pendências> <pendência> <GrupidId> org.springframework.cloud </foupid> <stifactId> Dependências de primavera-cloud </storkactid> <!-Forneça a mais recente versão estável do trem de liberação da nuvem da primavera (por exemplo, 2020.0.0)-> <versão> $ {release.train.version} </versão> <type> pom </pype> <cope> importar </cope> </dependency> </dependências> </dependencyManagement> <Dependences> <!-Suporte da Web da Boot-> <Ependency> <GrupidId> org.springframework.boot </frupId> <TarfactId> Spring-Boot-Starter-Web </ArtifactId> </dependency> <!-Sleuth with Brave Tracer Implementation-> <Ependency> <GrupidId> org.springframework.cloud </foupid> <Tarfactid> Spring-cloud-starter-sleuth </stifactId> </dependency> </dependências>
Considere o seguinte manipulador HTTP:
@RestControllerPublic Classe Democontroller {Loger estático privado Log = LoggerFactory.getLogger (democontroller.class);@requestmapping ("/") public string home () {log.info ("manusear home"); retornar "Hello World"; } }
Se você adicionar esse manipulador a um controlador, poderá ver as chamadas para home()
sendo rastreadas nos logs (observe os IDs 0b6aaf642574edd3
).
2020-10-21 12: 01: 16.285 INFO [, 0B6AAF642574EDD3,0B6AAF642574EDD3, TRUE] 289589 --- [NIO-9000-EXEC-1] Democontroller: Handling Home!
Observação | Em vez de registrar a solicitação no manipulador explicitamente, você pode definir logging.level.org.springframework.web.servlet.DispatcherServlet=DEBUG . |
Observação | Definir spring.application.name=myService (por exemplo) para ver o nome do serviço, bem como os IDs de rastreamento e span. |
Visite a página de documentação para ler mais sobre o projeto.
Para construir a fonte, você precisará instalar o JDK 1.8.
Spring Cloud usa o MAVEN para a maioria das atividades relacionadas à construção, e você poderá decolar rapidamente clonando o projeto em que está interessado e digitando
$ ./mvnw install
Observação | Você também pode instalar o maven (> = 3.3.3) e executar o comando mvn no lugar de ./mvnw nos exemplos abaixo. Se você fizer isso, também pode ser necessário adicionar -P spring se as configurações locais do Maven não conterem declarações de repositório para artefatos de pré -lançamento da primavera. |
Observação | Esteja ciente de que você pode precisar aumentar a quantidade de memória disponível para o MAVEN, definindo uma variável de ambiente MAVEN_OPTS com um valor como -Xmx512m -XX:MaxPermSize=128m . Tentamos cobrir isso na configuração .mvn ; portanto, se você achar que precisará fazer isso para fazer uma compilação ter sucesso, aumente um ticket para adicionar as configurações ao controle de origem. |
Os projetos que exigem middleware (ou seja, redis) para testes geralmente exigem que uma instância local do [Docker] (https://www.docker.com/get-started) seja instalada e em execução.
O módulo Spring-Cloud-Build possui um perfil de "documentos" e, se você ligar, tentará criar fontes ASCIIDOC a partir de src/main/asciidoc
. Como parte desse processo, ele procurará um README.adoc
e o processará carregando todos os inclui, mas não analisando ou renderizando -o, apenas copiando -o para ${main.basedir}
(padrão para ${basedir}
, ou seja, a raiz do projeto). Se houver alguma alteração no ReadMe, ele aparecerá após uma compilação do Maven como um arquivo modificado no local correto. Apenas comprometa -o e empurre a mudança.
Se você não tiver uma preferência de IDE, recomendamos que você use o Spring Tools Suite ou o Eclipse ao trabalhar com o código. Utilizamos o plug -in Eclipse M2eclipse para suporte ao maven. Outros IDEs e ferramentas também devem funcionar sem problemas, desde que usem o Maven 3.3.3 ou melhor.
Os projetos de nuvem de primavera exigem que o perfil do Maven 'Spring' seja ativado para resolver os repositórios de marco e instantâneos da primavera. Use seu IDE preferido para definir esse perfil como ativo ou você pode experimentar erros de construção.
Recomendamos o plug -in Eclipse M2eclipse ao trabalhar com Eclipse. Se você ainda não possui o M2eclipse instalado, ele está disponível no "Eclipse Marketplace".
Observação | As versões mais antigas do M2E não suportam o Maven 3.3; portanto, quando os projetos forem importados para o Eclipse, você também precisará dizer ao M2ECLipse para usar o perfil certo para os projetos. Se você vir muitos erros diferentes relacionados aos POMs nos projetos, verifique se você tem uma instalação atualizada. Se você não puder atualizar o M2E, adicione o perfil "Spring" ao seu settings.xml . Como alternativa, você pode copiar as configurações do repositório do perfil "Spring" do pai POM para o seu settings.xml . |
Se você preferir não usar o M2eclipse, você pode gerar metadados do projeto Eclipse usando o seguinte comando:
$ ./mvnw Eclipse: Eclipse
Os projetos Gerados Eclipse podem ser importados selecionando import existing projects
no menu file
.
A Spring Cloud é lançada sob a licença Apache 2.0 não restritiva e segue um processo de desenvolvimento do GitHub muito padrão, usando o GitHub Tracker para problemas e a fusão de solicitações de puxar no mestre. Se você deseja contribuir com algo trivial, não hesite, mas siga as diretrizes abaixo.
Antes de aceitarmos um patch não trivial ou solicitação de puxar, precisaremos que você assine o contrato de licença do colaborador. A assinatura do contrato do colaborador não concede a ninguém cometer direitos ao repositório principal, mas isso significa que podemos aceitar suas contribuições e você receberá um crédito de autor se o fizermos. Os contribuidores ativos podem ser solicitados a ingressar na equipe principal e, devido à capacidade de mesclar solicitações de tração.
Este projeto segue o Código de Conduta do Covenant Colaborador. Ao participar, você deve defender este código. Por favor, relate um comportamento inaceitável ao código de primavera de [email protected].
Nada disso é essencial para uma solicitação de tração, mas todos ajudarão. Eles também podem ser adicionados após a solicitação de tração original, mas antes de uma mesclagem.
Use as convenções de formato de código da estrutura da mola. Se você usar o Eclipse, poderá importar configurações do formatador usando o arquivo eclipse-code-formatter.xml
do projeto Spring Cloud Build. Se estiver usando o Intellij, você pode usar o plug -in Formatter Code Eclipse para importar o mesmo arquivo.
Certifique -se de que todos os novos arquivos .java
tenham um comentário simples de classe javadoc com pelo menos uma tag @author
identificando você e, de preferência, pelo menos um parágrafo sobre o que é a classe.
Adicione o comentário do cabeçalho da licença ASF a todos os novos arquivos .java
(copie dos arquivos existentes no projeto)
Adicione -se como um @author
aos arquivos .java que você modifica substancialmente (mais do que alterações cosméticas).
Adicione alguns javadocs e, se você alterar o espaço para nome, alguns elementos do XSD DOC.
Alguns testes de unidade também ajudariam muito - alguém tem que fazê -lo.
Se ninguém mais estiver usando sua filial, rebate-a contra o mestre atual (ou outra filial de destino no projeto principal).
Ao escrever uma mensagem de confirmação, siga estas convenções, se você estiver corrigindo um problema existente, adicione Fixes gh-XXXX
no final da mensagem de confirmação (onde xxxx é o número do problema).
A Spring Cloud Build vem com um conjunto de regras de estilo de seleção. Você pode encontrá spring-cloud-build-tools
. Os arquivos mais notáveis do módulo são:
Toolas de nuvem de nuvem de mola/
└── SRC ├── Checkstyle │ └── Checkstyle-supressions.xml (3) └── Main Recursos ├── Checkstyle-heate.txt (2) └── CheckStyle.xml (1)
Regras de estilo de seleção padrão
Configuração do cabeçalho do arquivo
Regras de supressão padrão
As regras do estilo de seleção são desativadas por padrão . Para adicionar estilo de seleção ao seu projeto, basta definir as seguintes propriedades e plugins.
pom.xml
<Proadies> <Maven-checkstyle-plugin.failsonError> true </maven-checkstyle-plugin.failsonError> (1) <Maven-checkstyle-plugin.failsonviolation> Verdadeiro </Maven-checkstyle-plugin.failsonviolation> (2) <Maven-checkstyle-plugin.includetestSourceDirectory> Verdadeiro </Maven-checkstyle-plugin.includEtestsourceDirectory> (3) </souperties> <uild> <flugins> <Plugin> (4) <PuerpId> io.spring.javaformat </groupid> <TarfactId> Spring-JavaFormat-Maven-Plugin </stifactId> </plugin> <lugin> (5) <PuerpId> org.apache.maven.plugins </groupid> <TarifactId> MAVEN-CHECKSTYLE-PLUGIN </ArtifactId> </plugin> </plugins> <lorporing> <flugins> <lugin> (5) <PuerpId> org.apache.maven.plugins </groupid> <TarifactId> MAVEN-CHECKSTYLE-PLUGIN </ArtifactId> </plugin> </plugins> </relatando> </built>
Falha na construção em erros de estilo de seleção
Falha na construção de violações do estilo de seleção
A análise do estilo de seleção também as fontes de teste
Adicione o plug -in de formato java de primavera que reformatará seu código para passar a maioria das regras de formatação do estilo de seleção
Adicione o plug -in de estilo de seleção às suas fases de construção e relatório
Se você precisar suprimir algumas regras (por exemplo, o comprimento da linha precisará ser mais longo), basta definir um arquivo sob ${project.root}/src/checkstyle/checkstyle-suppressions.xml
com suas supressões. Exemplo:
projectroot/src/checkstyle/checkstyle-supresions.xml
<? xml versão = "1.0"?> <! Doctype Suppressions Public "-// Puppy Crawl // DTD Suppressions 1.1 // EN" "https://www.pupppycrawl.com/dtds/suppressions_1_1.dtd"> <upressões> <suprime files = ".*ConfigServerApplication.java" checks = "hideutilityClassConstructor"/> <suprime files = ".*ConfigClientWatch.java" checks = "lineLengthCheck"/> </pressões>
É aconselhável copiar o ${spring-cloud-build.rootFolder}/.editorconfig
e ${spring-cloud-build.rootFolder}/.springformat
em seu projeto. Dessa forma, algumas regras de formatação padrão serão aplicadas. Você pode fazer isso executando este script:
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/.editorconfig -o .editorconfig $ touch .SpringFormat
Para configurar o Intellij, você deve importar nossas convenções de codificação, perfis de inspeção e configurar o plug -in de estilo de seleção. Os seguintes arquivos podem ser encontrados no projeto Spring Cloud Build.
Toolas de nuvem de nuvem de mola/
└── SRC ├── Checkstyle │ └── Checkstyle-supressions.xml (3) └── Main Recursos ├── Checkstyle-heate.txt (2) ├── CheckStyle.xml (1) └── Intellij ├── Intellij_project_defaults.xml (4) └sto
Regras de estilo de seleção padrão
Configuração do cabeçalho do arquivo
Regras de supressão padrão
Padrões de projeto para o Intellij que aplicam a maioria das regras do estilo de seleção
Convenções de estilo de projeto para Intellij que aplicam a maioria das regras do estilo de verificação
Figura 1. Estilo de código
Vá para File
→ Settings
→ Editor
→ Code style
. Clique no ícone ao lado da seção Scheme
. Lá, clique no valor Import Scheme
e escolha a opção Intellij IDEA code style XML
. Importar o arquivo spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml
.
Figura 2. Perfis de inspeção
Vá para File
→ Settings
→ Editor
→ Inspections
. Clique no ícone ao lado da seção Profile
. Lá, clique no Import Profile
e importe o arquivo spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml
.
Checkstyle
Para que o Intellij trabalhe com o estilo de seleção, você deve instalar o plug -in Checkstyle
. É aconselhável também instalar o Assertions2Assertj
para converter automaticamente as afirmações JUNIT
Vá para File
→ Settings
→ Other settings
→ Checkstyle
. Clique no ícone +
na seção Configuration file
. Lá, você terá que definir de onde as regras do estilo de verificação devem ser escolhidas. Na imagem acima, escolhemos as regras do repositório de construção de nuvem de primavera clonada. No entanto, você pode apontar para o repositório Github da primavera (por exemplo, o checkstyle.xml
: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/3.1.x/spring-cloud-build-tools/src/main/resources/checkstyle.xml
). Precisamos fornecer as seguintes variáveis:
checkstyle.header.file
-Por favor, aponte para o arquivo Spring Cloud Build, spring-cloud-build-tools/src/main/resources/checkstyle-header.txt
no seu repo clonado ou através do 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
- supressões padrão. Por favor, aponte para o arquivo spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml
no seu repo clonado ou por meio de 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
- Essa variável corresponde a supressões no seu projeto local. Por exemplo, você está trabalhando no spring-cloud-contract
. Em seguida, aponte para a pasta project-root/src/checkstyle/checkstyle-suppressions.xml
. Exemplo para spring-cloud-contract
seria: /home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml
.
Importante | Lembre -se de definir o Scan Scope para All sources , pois aplicamos regras de estilo de seleção para fontes de produção e teste. |
A construção de nuvens da primavera traz ao longo do basepom:duplicate-finder-maven-plugin
, que permite sinalizar classes e recursos duplicados e conflitantes no caminho de classe Java.
O Duplicate Finder é ativado por padrão e será executado na fase verify
da sua construção do MAVEN, mas isso só entrará em vigor em seu projeto se você adicionar o duplicate-finder-maven-plugin
à seção build
do pom.xml
do Projecst.
pom.xml
<uild> <flugins> <lugin> <GrupidId> org.basepom.maven </frupiD> <stifactId> duplicate-finder-maven-plugin </stifactId> </plugin> </plugins> </built>
Para outras propriedades, definimos os padrões listados na documentação do plug -in.
Você pode substituí-los facilmente, mas definindo o valor da propriedade selecionada prefixada com duplicate-finder-maven-plugin
. Por exemplo, defina duplicate-finder-maven-plugin.skip
como true
para pular duplicatas verificar sua compilação.
Se você precisar adicionar ignoredClassPatterns
ou ignoredResourcePatterns
à sua configuração, adicione -os na seção de configuração do plug -in do seu projeto:
<uild> <flugins> <lugin> <GrupidId> org.basepom.maven </frupiD> <stifactId> duplicate-finder-maven-plugin </stifactId> <figuration> <ignoredClassPatterns> <ignoredClasspattern> org.joda.time.base.basedateTime <ignoredClassPattern>.*Módulo-info </ignoredClassPattern> </ignoredclasspatterns> <ignoredResourCcepTterns> ) </ignoredResourCepTordins> </figuration> </plugin> </plugins> </built>