Besteht ein Nachteil darin, API-Code zusammen mit den Klassen in ein JAR zu schreiben?

8

Wenn Sie in Java die Quellcodedateien ( .java) zusammen mit Klassen ( .class) packen, werden die meisten IDEs wie eclipse die javadoc-Kommentare für die Codevervollständigung anzeigen.

IIRC gibt es einige Open-Source-Projekte, die das wie JMock tun.

Nehmen wir an, ich habe meinen API-Code sauber vom Implementierungscode getrennt, so dass ich etwas wie myproject-api.jar und myproject-impl.jar habe, gibt es einen Grund, warum ich den Quellcode nicht in mein myproject-api legen sollte. Krug ?

Wegen der Leistung? Größe?

Warum machen andere Projekte das nicht?

EDIT: Abgesehen von dem Maven-Download-Problem wird es weh tun, meine Quellen in die Klassen jar zu legen, um so viele Entwickler wie möglich zu unterstützen (maven oder nicht)?

    
Adam Gent 22.05.2010, 13:45
quelle

2 Antworten

6

Im Allgemeinen wegen Verteilungsgrund:

Wenn Sie separate Binärdateien und Quellen aufbewahren, können Sie nur das herunterladen, was Sie benötigen.
Zum Beispiel:

  • myproject-api.jar und myproject-impl.jar
  • myproject-api-src.jar und myproject-impl-src.jar
  • myproject-api-docs.zip und myproject-impl-docs.zip

Nun, m2eclipse - Maven for Eclipse kann Quellen herunterladen automatisch auch

%Vor%

Nun kann es auch erzeuge das richtige pom , um die Verteilung des Quell- oder Javadoc-Jar zu verhindern, wenn jemand eine Abhängigkeit von deinem jar deklariert.
Die OP kommentiert:

  

kann auch nicht vorstellen, Download-Größe ist ein Problem (ich meine, es ist 2010 ein paar 100k sollte kein Problem sein).

Nun, eigentlich ist es (d. h. "die Größe) ein Problem.
Maven leidet bereits unter dem "Herunterladen des halben Internets beim ersten Build" -Syndrom.
Wenn das auch Quellen und / oder Javadocs herunterlädt, beginnt das wirklich ermüdend.

Außerdem umfasst der Aspekt "Verteilung" die Bereitstellung : in webapp server gibt es keinen wirklichen vorteil, ein jar mit quellen darin zu implementieren .

Wenn Sie wirklich Quellen mit Binärdateien verknüpfen müssen, SO Frage zu Maven könnte helfen .

    
VonC 22.05.2010, 13:50
quelle
1

Mit maven verbinden Sie die Quellen automatisch wie folgt:

Ссылка

und die Javadocs wie folgt:

Ссылка

Auf diese Weise werden sie automatisch von

abgeholt %Vor%

oder von m2eclipse

    
Sean Patrick Floyd 22.05.2010 18:40
quelle

Tags und Links