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? P>
3 Réponses :
Une solution serait de simplement utiliser le compilateur Java 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. P>
Les méthodes obsolètes peuvent être trouvées à l'aide de l'option Javac Javac CODE> pour le faire. P>
-DePrecation code>. Plus d'informations sur
-deprecation code> ici:
http://docs.oracle.com/javase/6 /docs/technotes/tools/windows/javac.html p>
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».
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 p>
J'aimerais si vous mentionnez les noms de règles de thèses
Un aspect que je crois https://github.com/grundlefleck/finindbugs4depecating3rdParty P>
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 javac code> ne couvrira pas est si vous ne pouvez pas modifier le code 3ème partie pour ajouter
@depecated code> 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: P>
org.junit.assersert.asserthat code>. P>