2010-12-29 8 views
1

Ich muss das @version Tag aller Klasse Javadocs in meinem Projekt, sowie das @author Tag synchronisieren. Allerdings kenne ich keine einfache Möglichkeit, dies zu tun.Javadoc Version und Autor über alle Dateien aktualisieren?

Gibt es ein Plugin (vorzugsweise ein Maven-Plugin), das dies erreichen könnte? Und nein, das Maven-Release-Plugin wird das nicht für mich tun.

+0

Ich würde eine Suche tun und ersetzen in meine IDE für den Autor. Ich würde den Autor nicht ändern, außer der Name, den der Autor verwenden möchte, hat sich geändert. Ich vermute, dass sich die @version öfter ändern würde, also würde ich sie oft nicht in den Javadoc-Inhalt aufnehmen. Stattdessen würde ich die Version in das Verzeichnis/jar einschließen, in dem das Javadoc gespeichert ist (wie Oracle/Sun). –

Antwort

5

Die Art, wie ich @version verwende, ist in Verbindung mit @since. IMHO glaube ich @version Version der Software, wenn diese Klasse war geändert und @since stellt die Version der Software, wenn diese Datei/Klasse erstellt wurde.

Unter @author lautet meine Richtlinie, dass jeder Entwickler, der jemals zu dieser Klasse beigetragen hat (in einer größeren Weise), seinen/ihren Namen anhängen sollte.

Also, wenn Sie sehen, alle diese Prozesse sind manuell und müssen von Class Creator/Modifier zum Zeitpunkt der Codierung erfolgen. Und natürlich werden Sie eine ungleiche Version der Dateien haben. Und ich denke, das macht Sinn.

Ich würde gerne zuhören, wenn sich jemand darin unterscheidet.

+0

Ich denke, dass ich mich damit als Standard zufrieden geben kann. Jetzt nur alle @author-Tags über mein Projekt manuell zu aktualisieren ... – TheLQ

2

Natürlich gibt es ein Maven Weg, es zu tun, aber es ist sehr ungewöhnlich:

Ihre src/main/java-Ordner als <resource>, mit einem festen ausgabe definieren. Dann javadoc und jar-Plugins, so etwas wie diese neu konfigurieren:

<build> 
    <resources> 
     <resource> 
      <directory>src/main/java</directory> 
      <targetPath>sources</targetPath> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.6.1</version> 
      <configuration> 
       <sourcepath>${project.build.outputDirectory}/sources</sourcepath> 
      </configuration> 
      <!-- other config stripped --> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <excludes> 
        <exclude>sources/**</exclude> 
       </excludes> 
      </configuration> 
      <!-- other config stripped --> 
     </plugin> 
    </plugins> 
</build> 

Jetzt können Sie Platzhalter in Ihren Quelldateien verwenden und interpolieren sie mit Maven Eigenschaften (siehe maven filtering als Referenz)

+0

Nur neugierig, wenn das Deployment-Plugin JavaDoc erstellen würde, würde es die gefilterten Dateien sehen, oder es würde direkt in 'src/main/java' schauen? Ich meine, ich habe das nie versucht, hoffentlich funktioniert es. Ich bin ein bisschen zweifelhaft. – Nishant

+0

@Nishant Das Deploy-Plugin erstellt kein Javadoc, das Javadoc-Plugin tut dies. Und wir sagen dem Javadoc-Plugin, wo sich die Dateien befinden. –

+0

Eine Sache, die zu beachten ist, ist, dass dieser Ansatz IntelliJ IDEA dazu bringen wird, Quelldateien als Ressourcen zu betrachten, und dass sie keine ordnungsgemäße Vervollständigung und andere IDE-Funktionen für diese Quelldateien verwenden wird. – gvlasov

Verwandte Themen