Ferramenta de Análise de Código Java - E.g Diga-me se uma assinatura de método foi alterada, a implementação do método
-
12-12-2019 - |
Pergunta
Existe alguma ferramenta diff especificamente para Java que não apenas destacam diferenças em um arquivo, mas é mais complexa?
por mais complexo Quero dizer, tomar 2 arquivos de entrada, o mesmo arquivo de classe de diferentes versões, e me dizer coisas como:
- nomes de campo alterados
- novos métodos adicionados
- métodos excluídos
- métodos cujas assinaturas mudaram
- métodos cujas implementações mudaram (não interessadas em mais detalhes do que isso)
Feito algum googling e não consegue encontrar nada assim ... Eu acho que pode ser útil para determinar se as alterações de dependência exigiriam uma reconstrução de um determinado módulo.
Agradecemos antecipadamente
edit:
Eu suponho que eu deveria esclarecer:
Eu não estou incomodado sobre uma GUI para a ferramenta, seria algo que estou interessado em chamando programaticamente .
e como para o meu raciocínio:
- para treinar se eu precisar reconstruir certos módulos / componentes, se suas dependências mudaram (o que poderia nos salvar cerca de 1 hora por componente) ... Explicação mais detalhada, mas eu realmente não vejo isso tão importante.
- Para ser usado para analisar as alterações feitas em determinados componentes que estamos tentando bloquear e confiar em como sendo mais estável, estamos tentando garantir que apenas raramente se os assinaturas de método mudarem em um determinado componente.
Solução
Você disse acima que clirr é o que você está procurando.
Mas para outros com necessidades ligeiramente diferentes, gostaria de recomendar jdiff .Ambos têm prós e contras, mas para minhas necessidades acabei usando JDIFF.Eu não acho que isso satisfaça o seu último ponto de bala e é difícil ligar para programaticamente.O que faz é gerar um relatório útil para diferenças de API.