6
votes

Les tremblements Findbugs peuvent-ils être utilisés pour signaler le code qui utilise une méthode qui a été blacklistée?

Nous essayons de déplacer notre très grand codeBase de GUAVA 11 à GUAVA 14 et souhaitez capturer des utilisations des API supprimées ou obsolètes. Les Findbugs peuvent-ils effectuer une telle vérification? Si oui, comment?


0 commentaires

3 Réponses :


4
votes

Une solution serait de simplement utiliser le compilateur Java Javac pour le faire.

Les méthodes supprimées dans l'API entraîneraient des erreurs de compilateur s'ils sont utilisés afin qu'il soit possible de les trouver en compilant le code.

Les méthodes obsolètes peuvent être trouvées à l'aide de l'option Javac -DePrecation . Plus d'informations sur -deprecation ici: http://docs.oracle.com/javase/6 /docs/technotes/tools/windows/javac.html


4 commentaires

Notre codeBase est une vaste forêt de modules avec des dépendances inconnues (actuellement) et différentes façons de se construire. Si GUAVA 14 a été jeté là-bas, de nombreuses constructions vont casser (peut-être avoir des erreurs d'exécution) et ne peuvent pas être fixées avant que leurs dépendances soient réparées.


Donc quel est le problème? Vous savez maintenant quelles dépendances ont besoin de la fixation.


Je ne suis pas sûr de comprendre le problème non plus. Vous n'avez pas à "à travers GUAVA 14". Faites juste la compilation localement avant de commettre quoi que ce soit.


Si vous considérez la migration de GUAVA 11 à 14 une tâche de course longue, si vous ne voulez pas trop diverger pendant que vous supprimez les mauvaises usages, il est logique de les suivre en utilisant quelque chose d'autre que «mise à niveau temporairement et essayer de compiler».



1
votes

Vous pouvez également utiliser PMD Sourceforge pour cette tâche. Il existe des règles qui vous permettent de trouver des méthodes obsolètes


1 commentaires

J'aimerais si vous mentionnez les noms de règles de thèses



1
votes

Un aspect que je crois javac ne couvrira pas est si vous ne pouvez pas modifier le code 3ème partie pour ajouter @depecated annotations. Si vous voulez simplement éviter une méthode qui n'a pas été marquée comme obsolète, vous pouvez utiliser ce plugin que j'ai écrit pour Findbugs:

https://github.com/grundlefleck/finindbugs4depecating3rdParty

Il y a très peu de documentation, vous devrez peut-être explorer un peu vous-même. Il permet de configurer des méthodes et des classes à éviter dans un fichier de propriétés. Je l'utilise pour déprécier org.junit.assersert.asserthat .


0 commentaires