Key points are not available for this paper at this time.
Dependências intensivas de um projeto Java em bibliotecas de terceiros podem facilmente levar à presença de múltiplas versões de bibliotecas ou classes no seu classpath. Quando isso acontece, a JVM carregará uma versão e ocultará as outras. Problemas de conflito de dependência (DC) ocorrem quando a versão carregada não cobre um recurso necessário (por exemplo, método) referenciado pelo projeto, causando assim exceções em tempo de execução. No entanto, os avisos de classes ou bibliotecas duplicadas detectadas por ferramentas de construção existentes, como Maven, podem ser benignos, uma vez que nem todas as instâncias de duplicação levarão a exceções em tempo de execução e, portanto, são frequentemente ignoradas pelos desenvolvedores. Neste artigo, realizamos um estudo empírico sobre problemas de DC do mundo real coletados de grandes projetos de código aberto. Estudamos a manifestação e os padrões de correção dos problemas de DC. Com base em nossas descobertas, projetamos o Decca, uma ferramenta de detecção automatizada que avalia a gravidade dos problemas de DC e filtra os benignos. Nossos resultados de avaliação em 30 projetos mostram que o Decca alcança uma precisão de 0.923 e uma revocação de 0.766 na detecção de problemas de DC de alta gravidade. O Decca também detectou novos problemas de DC nesses projetos. Subsequentemente, 20 relatórios de bugs de DC foram registrados, e 11 deles foram confirmados pelos desenvolvedores. Questões em 6 relatórios foram corrigidas com nossos patches sugeridos.
Wang et al. (Sex,) estudaram esta questão.