Erstelle ein einzelnes jar, das kompilierte Klassen enthält, und javadoc mit Maven

8

Ich versuche, eine JAR-Datei zu generieren, die ein API-SDK für unser Produkt enthält, damit unsere Kunden Plugins erstellen und sie mit unserer API kompilieren können. Alle Klassen / Schnittstellen, die wir als Teil unseres API-SDK-Krugs bereitstellen, sind auch in unserem Hauptprodukt enthalten, sodass API-Entwickler unser API-SDK-Krug nicht in ihr Plugin-Krug aufnehmen müssen. Daher mache ich mir keine Sorgen über die Größe unseres API-SDK-Krugs. Ich möchte jedoch das Leben von Plugin-Entwicklern vereinfachen und nur eine JAR-Datei bereitstellen, die sowohl die kompilierten Klassen als auch das Javadoc enthält (so können Entwickler Inline-Kommentare als Teil der automatischen Vervollständigung sehen, wenn sie sich entwickeln). p>

Wir verwenden Maven zum kompilieren und ich habe die folgende Konfiguration zum API SDK pom.xml hinzugefügt:

%Vor%

Das funktioniert, aber das erzeugt zwei jar-Dateien - eine mit kompilierten Klassen und eine mit javadoc. Stattdessen möchte ich nur eine JAR-Datei mit allem erzeugen.

Wir verwenden derzeit Maven, um dieses Projekt zu kompilieren, aber wir können auch andere Build-Tools verwenden.

    
Misha Narinsky 20.02.2013, 19:11
quelle

3 Antworten

4

Sie können dies tun:

  • Fügen Sie das javadoc-Ziel dem prepare-Paket
  • bei
  • Geben Sie das javadoc-Ausgabeverzeichnis für target / classes
  • an

Das jar-Plugin erstellt ein jar mit allem innerhalb von target / classes (einschließlich der generierten javadocs)

%Vor%     
ben75 20.02.2013, 21:12
quelle
2

Haben Sie sich das Assembly-Plugin angesehen?

Das Assembly-Plugin kann eine jar-Format-Assembly erstellen (bei der es sich tatsächlich um eine Zip-Format-Assembly mit einer MANIFEST.MF-Datei handelt). Sie können sowohl das Verzeichnis classes als auch das Verzeichnis apidocs in Ihrer Assembly angeben. steck eine MANIFEST.MF drin und du bist fertig.

Glücklicherweise kann das javadoc:javadoc -Ziel als Teil des build -Lebenszyklus konfiguriert werden, indem es in <build> Abschnitt der pom.xml in der generate-sources -Phase. Das bedeutet, dass die generierten JavaDocs für das Assembly-Plugin verfügbar sein sollten.

    
David W. 20.02.2013 21:03
quelle
0

Nun, in der Tat können Dinge tatsächlich auf eine einfachere Weise getan werden.

Erzeuge ein sources jar-Artefakt mit maven-source-plugin :

%Vor%

Auf diese Weise wird Ihr Projekt die Quellen in Ihrem Artefakt-Repository bereitstellen.

Dann können Sie in der Maven-Konfiguration Ihrer IDE einfach das Herunterladen von Quellartefakten einschalten, was bedeutet, dass Ihre IDE Javadocs hat, wenn Sie natürlich in Ihrem Code entsprechende Kommentare haben.

Auf diese Weise können Sie Artefakte auch korrekt trennen.

Abgesehen davon sind die Antworten von David W. und ben75 auch gültige Wege.

    
carlspring 21.02.2013 10:16
quelle

Tags und Links