Erkennung von API-Änderungen / -Evolution [geschlossen]

9

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.

    
notnoop 03.11.2009, 02:11
quelle

6 Antworten

7

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)
  •   
    
Pascal Thivent 03.11.2009, 02:35
quelle
3

Es gibt auch ein neues Werkzeug zur Überprüfung der API-Entwicklung namens Revapi

    
metlos 26.11.2014 22:19
quelle
2

Ü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

    
jitter 03.11.2009 04:38
quelle
1

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

    
jitter 03.11.2009 04:45
quelle
1

Sie können auch japicmp ausprobieren.

    
siom 02.11.2015 14:44
quelle
1

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:

    
aponomarenko 21.03.2016 11:22
quelle

Tags und Links