Ich möchte die API-Entwicklung für ein bestimmtes Java-Projekt messen, insbesondere neue / umbenannte Klassen, neue Methoden, neu veraltete Methoden usw. Gibt es ein Tool, das solche Änderungen erkennt?
Bereits im Jahr 2007 wurde ein Google GSoc-Projekt initiiert. Ich kann die letzte Arbeit nicht finden.
Ich würde Clirr dafür verwenden, einen binären Kompatibilitäts-Checker. Auf der Clirr-Website:
Was ist das?
Clirr ist ein Tool, das Java überprüft Bibliotheken für Binär und Quelle Kompatibilität mit älteren Versionen. Im Grunde gibst du es zwei Gläser Dateien und Clirr löscht eine Liste von Änderungen in der öffentlichen API. Der Clirr Die Ant-Task kann so konfiguriert werden, dass sie bricht der Build, wenn er inkompatibel ist API ändert sich. In einem kontinuierlichen Integrationsprozess Clirr kann automatisch verhindern versehentlich Einführung von Binär oder Quelle Kompatibilitätsprobleme.
...
Funktionen
- Melden Sie alle API-Änderungen (derzeit nur teilweise implementiert)
- Bewerten Sie jede Änderung mit. Binär- und Quellkompatibilität
- unterstützt einfachen Text und XML-Berichte
- Flexible Fehlerbehandlung (Warnungen vs. Fehler, Abbruch des Builds oder Set Fehlereigenschaft)
Übrigens scheint es im gwt-Quellcode einen API-Checker zu geben, ich weiß nicht, ob das das Produkt des erwähnten GSoc-Projekts ist.
GwtJavaApiCompatibilityChecker wird auch in build.xml
JDiff ist vielleicht auch eine Erwähnung wert.
JDiff ist ein Javadoc-Doclet, das generiert einen HTML-Bericht aller Pakete, Klassen, Konstruktoren, Methoden und Felder, die entfernt, hinzugefügt oder verändert in irgendeiner Weise, einschließlich ihrer Dokumentation, wann zwei APIs werden verglichen. Das ist sehr nützlich für die Beschreibung, was genau hat wechselte zwischen zwei Releases von a Produkt. Nur die API (Anwendung Programmierschnittstelle) jeder Version wird verglichen. Es vergleicht nicht was der Quellcode wird ausgeführt, wenn er ausgeführt wird.
Wie ich es verstanden habe, läuft es auf dem Quellordner der alten Version und erzeugt eine XML-Datei. Das gleiche gilt für den Quellordner mit der neuen Version. Dann werden die beiden XML-Ausgaben verglichen und eine Änderungsliste erstellt. In html-javadoc-api-style
Probieren Sie das Tool japi-compliance-checker aus. Es ist Open-Source. Das Tool zeigt API-Änderungen an und erkennt sowohl Backward Source (SC) als auch Backward Binary (BC) Kompatibilitätsprobleme zwischen zwei Jar-Archiven:
%Vor%Beispielberichte für log4j: Ссылка
Sie können die Klassifizierung gefundener Kompatibilitätsprobleme nach Schweregrad in den Berichten für bestimmte Bibliotheksversionen finden:
Tags und Links java api compatibility