Stiamo provando a spostare la nostra base di codice molto ampia da Guava 11 a Guava 14 e vorremmo rilevare gli usi delle API rimosse o deprecate. FindBugs può eseguire tale controllo? Se é cosi, come?È possibile utilizzare FindBug per contrassegnare il codice che utilizza un metodo che è stato inserito nella lista nera?
risposta
Una soluzione sarebbe utilizzare il compilatore Java Oracle javac
per eseguire questa operazione.
I metodi rimossi nell'API causerebbero errori del compilatore se vengono utilizzati, quindi dovrebbe essere possibile trovarli compilando il codice.
I metodi deprecati possono essere trovati utilizzando l'opzione javac -deprecation
. Ulteriori informazioni su -deprecation
qui: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.html
Per questa attività è inoltre possibile utilizzare PMD Sourceforge. Ci sono delle regole che ti permettono di trovare metodi deprecati
Un aspetto che credo che sia javac
non è se non è possibile modificare il codice di terze parti per aggiungere annotazioni @Deprecated
. Se si desidera solo per evitare un metodo che non è stato contrassegnato come deprecato, è possibile utilizzare questo plugin che ho scritto per FindBugs:
https://github.com/Grundlefleck/FindBugs4Deprecating3rdParty
C'è molto poco di documentazione, quindi potrebbe essere necessario per esplorare un po 'da soli. Permette di configurare metodi e classi da evitare in un file di proprietà. Lo uso per deprecare org.junit.Assert.assertThat
.
- 1. Come saprò che il record è stato duplicato o è stato inserito con successo?
- 2. è possibile contrassegnare il metodo sottoposto a override come finale
- 3. trovare l'elemento inserito nella lista
- 4. Impossibile aggiornare oggetto che non è mai stato inserito
- 5. Rilevare che un metodo non è stato ignorato
- 6. Posso rilevare che un metodo è stato sovrascritto?
- 7. Per che cosa è il metodo restTemplate.exchange()?
- 8. È possibile che un metodo non venga visualizzato in intellisense?
- 9. È possibile utilizzare un ActionLink che contiene un elemento?
- 10. È possibile utilizzare il framework MVC in un'applicazione Web che utilizza attualmente ASP .NET?
- 11. Verificare che il record sia stato inserito correttamente in Symfony2
- 12. È possibile utilizzare le funzioni di runtime Objective-C per determinare da dove è stato chiamato un metodo?
- 13. Perché non è possibile definire un metodo sia per una struttura che per il suo puntatore?
- 14. ciò che è un buon metodo per frammento orizzontale postgresql
- 15. Qual è il significato di "lista nera" su GStreamer?
- 16. È possibile creare un modulo node.js che utilizza librerie c per la connessione monetdb?
- 17. È possibile passare argomenti a un frammento dopo che è stato aggiunto a un'attività?
- 18. È possibile scrivere un client SSH javascript che utilizza socket Web per il trasporto?
- 19. TreeView VB.NET - selezionando dinamicamente un nodo dopo che è stato inserito o spostato?
- 20. È possibile utilizzare il metodo OnPostExcecute in valori AsyncTask RETURN?
- 21. Come mostrare agli utenti che è stato inserito un nuovo commento
- 22. È possibile eseguire in localhost un'app che utilizza Twitter OAuth?
- 23. È possibile utilizzare "ritorno" nella stored procedure?
- 24. È JavaScript test() che salva lo stato nella regex?
- 25. È possibile contrassegnare la funzione di mutex-blocco come const
- 26. È possibile che ConcurrentHashMap "deadlock"?
- 27. È possibile chiamare il metodo principale che passa args [] da un altro metodo?
- 28. È possibile scrivere codice che causerà tempi di compilazione lunghi?
- 29. È possibile utilizzare il cronometro nel codice di produzione?
- 30. Esiste un controllo della finestra di dialogo Proprietà che è possibile utilizzare nella mia app WPF?
Il nostro codebase è una vasta foresta di moduli con dipendenze (attualmente) sconosciute e diversi modi di costruire se stessi. Se Guava 14 è stato buttato fuori, molte build si interromperanno (forse con errori di runtime) e non potranno essere risolti fino a quando non saranno risolte le loro dipendenze. –
Quindi qual è il problema? Ora sai quali dipendenze devono essere risolte. –
Non sono sicuro di aver capito il problema. Non devi "attraverso Guava 14 là fuori". Basta fare la compilation localmente prima di commettere qualcosa. – uldall