Fala Guilherme, tudo bem ?
"Como posso saber qual versão de dependências eu posso atualizar? O curso de Maven ensina isso ou tem alguma dica rápida que vocês podem me dar?"
Aqui temos um caso sensível. O maven em si oferece toda a infraestrutura necessária para a gestão das dependências, mas não tem (que eu saiba =/) uma forma direta para prever esse tipo de conflito com versões de jars que possuem essas dependências externas. Em alguns casos as documentações de certas libs/frameworks, em suas determinadas versões, deixam claro a necessidade de seguir versões específicas de outras libs cujo trabalho é dependente.
Quando esse tipo de coisa acontece (NoSuchMethodError: org.springframework.util.AntPathMatcher.setCaseSensitive
) em geral, acaba sendo de nossa responsabilidade buscar a causa do problema/conflito nas documentações das libs que estamos usando.
Por exemplo, pesquisando por aqui, vi que o referido método (AntPathMatcher.setCaseSensitive
) só está presente a partir da versão 4.2.x do spring-core
, sendo que no pom.xml a versão do spring mvc (4.1) também trará a mesma versão do core
Você pode usar a visualização Dependency Hierarchy do pom.xml para ver as dependências resolvidas. Talvez seja o máximo de suporte que a IDE com o plugin do maven vai te dar
Exemplo:
Se dermos uma olhada nas Javadocs veremos a diferença:
Talvez atualizando o spring mvc para a versão 4.2.X resolva esse problema. E lembre sempre de dar um Clique direito no projeto > Maven > Update Project > Force Update of Snapshots/Releases para reconstruir as dependências evitando problemas após alterar o pom.xml
. Agora sempre fica o mistério do por que alguma biblioteca passou a chamar este método mais recente causando o conflito. Talvez até a atualização da versão do spring-context tenha gerado isso.
Enfim.. Espero ter ajudado
Abraço!