Wenn ich CheckStyle über mein Java-Projekt ausführe, wird dies Missing package-info.java file.
für einige Klassen angezeigt , jedoch nicht für alle. Ich kann nicht wirklich herausfinden, warum diese Nachricht nur manchmal erscheint. Außerdem läuft mein Projekt ohne die package-info.java einwandfrei.
Was macht die package-info.java? Benötige ich es wirklich für meine Java-Projekte?
java
maven
checkstyle
Sokrates
quelle
quelle
Antworten:
Es wird verwendet, um Javadocs für ein Paket zu generieren.
Generiert Paketinformationen für das
com.domain
Paket:Beispielergebnis: https://docs.oracle.com/javase/7/docs/api/java/awt/package-summary.html
quelle
Example result
ist es die readme.md?Anmerkungen
Ein weiterer guter Grund zu verwenden package-info.java ist standardmäßig hinzufügen Anmerkungen zur Verwendung von FindBugs . Wenn Sie dies beispielsweise in Ihre Paketinfo-Datei einfügen:
Wenn dann findbugs für den Code in diesem Paket ausgeführt wird, wird angenommen, dass alle Methoden und Felder nicht null sind, es sei denn, Sie kommentieren sie mit
@CheckForNull
. Dies ist viel schöner und narrensicherer, als wenn Entwickler@NonNull
jeder Methode und jedem Feld Anmerkungen hinzufügen müssen.quelle
Nicht nur einige Findbugs-Annotationen, sondern auch viele Java-Annotationen in allgemeinen Bibliotheken haben den
java.lang.annotation.ElementType.PACKAGE
Typ als einen der möglichen Werte ihrer eigenenjava.lang.annotation.Target
Annotation, z.und vieles mehr.
Diese
package-info.java
Datei ist die Datei, in der Sie solche Anmerkungen (zusammen mit dem Javadoc) platzieren können.quelle
Eine package-info.java-Datei ermöglicht das Hinzufügen von Javadoc, um ein ganzes Paket zu dokumentieren. Siehe beispielsweise http://docs.oracle.com/javase/7/docs/api/java/applet/package-summary.html .
Wenn Sie sich nicht für fehlende Paketdokumentation interessieren , ignorieren Sie die Warnung oder deaktivieren Sie die JavadocPackage-Prüfung .
quelle
Die package-info.java ist eine Java-Datei, die zu jedem Java- Quellpaket hinzugefügt werden kann. Es wird verwendet, um Informationen auf "Paketebene" gemäß ihrem Namen bereitzustellen. Es enthält Dokumentation und Anmerkungen, die im Paket verwendet werden.
Das Javadoc-Beispiel ist bereits in der Antwort enthalten. Im folgenden Teil wird erläutert, wie es bei Anmerkungen funktioniert.
In der folgenden Datei wird es beispielsweise verwendet, um das Auftreten von joda.time.DateTime durch org.jadira.usertype.dateandtime.joda.PersistentDateTime zu "ersetzen"
Es gibt eine Reihe von Anmerkungen, mit denen verschiedene Dinge auf "Paket" -Ebene ausgeführt werden können. Es finden Sie unter https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/annotations/package-summary.html
quelle