Там какой-либо недостаток к помещению кода API в JAR наряду с классами?

В Java, если Вы упаковываете исходный код (.java) файлы в банку наряду с классами (.class) большая часть IDE как затмение, покажет комментарии Javadoc для завершения кода.

IIRC там являются немногими проектами с открытым исходным кодом, которые делают это как JMock.

Позволяет говорят, что я чисто разделил свой код API от кода реализации так, чтобы у меня было что-то как myproject-api.jar, и myproject-impl.jar является там какой-либо причиной, почему я не должен помещать исходный код в свой myproject-api.jar?

Из-за производительности? Размер?

Почему другие проекты не делают этого?

Править: Кроме проблемы загрузки Знатока что-нибудь повредит помещать мои источники в банку классов для поддержки как можно большего количества разработчиков (знаток или не)?

8
задан Adam Gent 23 May 2010 в 13:05
поделиться

2 ответа

Обычно по причине распространения:

если вы храните отдельные двоичные файлы и исходные коды, вы можете загружать только то, что вам нужно.
Например:

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

Теперь m2eclipse - Maven for Eclipse может автоматически загружать исходники

mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 

Теперь он также может сгенерировать правильный pom , чтобы предотвратить распространение jar-файла с исходным кодом или javadoc, когда кто-либо заявляет о зависимости от вашего jar-файла.
Комментарий OP:

также не может представить, что размер загрузки является проблемой (я имею в виду, что в 2010 году пара 100k не должна быть проблемой).

На самом деле это (то есть "размер) проблема.
Maven уже страдает синдромом «скачивает половину интернета при первой сборке».
Если при этом загружаются также исходники и / или javadocs, это начинает быть очень утомительным.

Кроме того, аспект «распространения» включает развертывание : на сервере веб-приложений нет реальных преимуществ в развертывании jar-файла с исходными кодами в нем .

Наконец, если вам действительно нужно связать источники с двоичными файлами, этот SO вопрос по Maven может помочь .

6
ответ дан 5 December 2019 в 21:17
поделиться

Используя maven, автоматически прикрепите источники следующим образом:

http://maven.apache.org/plugins/maven-source-plugin/usage.html

и javadocs, например:

http : //maven.apache.org/plugins/maven-javadoc-plugin/jar-mojo.html

Таким образом, они будут автоматически обнаружены

mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 

или m2eclipse

1
ответ дан 5 December 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: