Можно ли упростить «прикрепление источника» для популярных библиотек Java? - PullRequest
2 голосов
/ 26 октября 2008

Я сталкиваюсь с этим препятствием, когда мой отладчик входит в какой-то файл класса без соответствующего источника. Найти его часто сложно:

  • Вы должны искать сайт, на котором размещен соответствующий проект, и найти его страницу `` источник загрузки '' (например, в прошлый раз, когда я искал для JPA API, и мне потребовались часы, чтобы получить источники). Или вы могли бы необходимо проверить это из контроля версий.

  • Вам необходимо знать точную версию, которую вы используете. Иначе отладчик может перейти к комментариям и пустым строкам:)

  • Не существует соглашения для упаковки исходного кода & mdash; некоторые проекты включают это в саму флягу; некоторые предоставляют отдельный zip-файл; другие помещают его в подпапку src/ внутри почтового индекса.

Я знаю, что у Maven есть возможность загрузки исходного кода из своего хранилища и включение его в пути src при создании файла конфигурации IDE. Но Репозиторий Maven настолько беден с точки зрения содержания, что на самом деле мало кто из их источник загружен.

Почему это так сложно, когда это можно сделать просто? Мы могли бы иметь некоторый центральный репозиторий, который связывает файл класса (или его хеш) с источником файл, из которого он был скомпилирован (или ссылка на него). Может быть, довольно огромный репо, но довольно просто структурировано. Плагин IDE может запросить его, чтобы автоматически получить то, что нужно.

Вы, ребята, испытали то же самое?

Как получить источники для прикрепления?

Ответы [ 5 ]

2 голосов
/ 20 сентября 2009

И m2eclipse , и IDEA загрузят исходные коды и javadocs для любых зависимостей. Исходники m2eclipse можно загрузить, щелкнув правой кнопкой мыши по зависимости (или всему проекту, если вы хотите все источники) и выбрав Maven-> Download Sources.

download sources screenshot

В более новых версиях m2eclipse вы также можете автоматически загружать источники, перейдя в Window-> Preferences ...-> Maven и выбрав опцию «Download Artifact Sources». Когда вы открываете тип в банке зависимостей, для которого в настоящее время нет доступных источников, Maven загрузит источники в фоновом режиме и обновит вложение источника в фоновом режиме.

Maven preferences screenshot

1 голос
/ 26 октября 2008

Самого удовлетворительного решения не видел.

Я склонен снимать свое собственное репо без Maven (Maven в порядке, но он не щелкает со мной). Я запускаю нечто похожее на систему портов BSD, то есть одно большое структурированное дерево, которое содержит небольшие файлы сборки Ant. Эти файлы сборки либо извлекают исходный код проекта, извлекают его зависимости из другого места в дереве и собирают его (они предназначены для проектов, которые я хочу построить, т. Е. Мой), либо извлекают двоичные файлы из другого места (которое может быть внешним исходный код или мой собственный бинарный репозиторий).

Система может быть легко расширена для извлечения файлов src, но сейчас я делаю это вручную.

0 голосов
/ 08 ноября 2008

Все это делается автоматически, если вы используете M2eclipse (http://m2eclipse.sonatype.org).

0 голосов
/ 26 октября 2008

мы делаем что-то похожее на Андреаса. В нашем каталоге lib есть подкаталоги, классифицирующие дальше. Одним из таких подпапок является source или debug, в котором есть JAR / ZIP-файлы с исходным кодом для всех jar-файлов, которые мы хотим отладить. Сделайте это один раз, и вы хорошо. Мы используем репозиторий IVY для банок и исходных банок.

0 голосов
/ 26 октября 2008

это может быть сложно, но стоит начальных усилий.

я делаю это следующим образом: в моем каталоге проектов у меня есть три главных каталога,

  • SRC (мой собственный)
  • Lib
  • Suppl (источники / Javadocs, когда нет источников)

Я положил в Suppl один ZIP-файл на библиотеку, содержащую источники. в частности, это дает мне не только сверхспособности отладчика, но и javadocs.

Вы правы, получение источников - это боль. иногда исходники поставляются в файле .jar библиотеки, иногда в виде отдельной загрузки (мой любимый), а иногда мне нужно создать отдельный каталог cvs / svn, где я могу проверить источники. мне обычно нужно переупаковывать их так, как они мне нравятся, даже если они представлены в виде почтового индекса.

Я скептически отношусь к Мейвену. я просто не люблю передавать свои решения о выборе библиотек в программу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...