У меня есть исходный код Java в стандартной структуре каталогов src/lib/test/ для моего проекта. Я хочу создать веб-представление моего исходного кода, где я могу запустить браузер и увидеть выделенный синтаксис, пронумерованный код строки. Я не только хочу этого, но также хочу, чтобы файлы были правильно связаны (например, щелкнув имя метода/класса/интерфейса и т. д. в представлении кода на веб-странице, это приведет меня к «стилю Eclipse» на соответствующую страницу). Есть ли какое-нибудь программное обеспечение, которое уже делает это? Я знаю, что есть тонны подсветки синтаксиса js и css, так что эта часть проста, и поэтому меня больше интересует часть ссылок.
Исходный код Java отображается в браузере?
comment
... больше интересует связующая часть. Выделить ключевые слова легко. Правильное получение перекрестных ссылок означает имитацию действий компилятора при разрешении того, на что ссылается имя. Это намного сложнее.
- person Ira Baxter   schedule 22.06.2011
comment
Ира права, это может быть очень много работы. Будет ли недостаточно создания JavaDocs с прикрепленным и связанным исходным кодом? Не совсем то, что вы описали, но, может быть, достаточно близко?
- person Crollster   schedule 22.06.2011
comment
@Ira, да, это сложный вопрос, иначе я бы, наверное, не спрашивал :) Я бы предположил, что если каталог bin/ доступен, мы можем посмотреть файлы .class, а в файлах .class есть вся информация (они я тоже думаю, что есть номера строк) нам нужно, но да, это сложно сделать, и я не знаю ни одного инструмента, который это делает.
- person pathikrit   schedule 22.06.2011
comment
@Crollster, нет, этого будет недостаточно - у нас чрезвычайно большая база кода, и иногда инженерам быстрее просто иметь простое веб-представление о том, что происходит, чем проверять и обновлять миллионы строк кода и выполнять поиск или загрузку. это в IDE.
- person pathikrit   schedule 22.06.2011
Ответы (3)
См. наш браузер исходного кода Java. Сочетает просмотр исходного кода Java с перекрестными ссылками в стиле JavaDoc. Гиперссылки на идентификаторы полностью соответствуют правилам области видимости Java.
В настоящее время работает с Java 1.4, в настоящее время завершаются версии для Java 1.5 и выше.
РЕДАКТИРОВАТЬ, май 2012 г.: обрабатывает Java 1.6 и Java 7.
person
Ira Baxter
schedule
22.06.2011
Потрясающе - почти то, что я искал. Добавьте номера строк и универсальный поиск по коду в стиле OpenGrok, а также улучшенную подсветку синтаксиса (code.google .com/p/google-code-prettify) и поддерживать Java6, и я получу именно то, что хочу!
- person pathikrit; 22.06.2011
нет, я в Маунтин-Вью, но я ездил в Юта-Остин, и да, я хотел бы поиграть с бета-версией. Моя электронная почта находится в моем профиле. Спасибо!
- person pathikrit; 22.06.2011
@wrick — в вашем профиле указано, что вы находитесь в Остине. Пора обновить :-}
- person Ira Baxter; 23.06.2011
Браузер не выполняет поиск; он производит чистый HTML. Вы можете увидеть поисковую систему для крупномасштабной многоязычной системы по адресу www.semanticdesigns.com/Products/SearchEngine.
- person Ira Baxter; 23.06.2011
Я думаю, что лучше всего вам подойдет Cobertura. Из коробки он будет генерировать хорошие HTML-версии вашего источника. В качестве дополнительного преимущества он также будет генерировать отчет о покрытии кода. ;)
Maven JXR также является еще одним вариантом (если вы используете Maven).
person
Will Iverson
schedule
22.06.2011
ОП сказал, поэтому меня больше интересует часть перекрестных ссылок. Создает ли Coberatura правильные перекрестные ссылки?
- person Ira Baxter; 22.06.2011
Я только что проверил последнюю версию, Cobertura, похоже, не делает перекрестных ссылок, но Maven JXR делает.
- person Will Iverson; 22.06.2011
Maven JXR действительно очень близок к тому, что я ищу (maven.apache.org/jxr/xref/org/apache/maven/jxr/), но он делает только гиперссылки имени класса. Было бы здорово, если бы в нем были даже гиперссылки имен методов (и переменных?). И нет, я не использую Maven — как я уже сказал, у меня очень простая структура проекта с ограниченными внешними зависимостями (у меня в моей библиотеке всего 4 jar-файла — Guava, Apache Commons, Log4J и MySQL), поэтому я не почувствовал нужно использовать Ant или Maven
- person pathikrit; 22.06.2011
OpenGrok делает многое из того, о чем вы просите, а также позволяет выполнять интересный поиск.
person
joeslice
schedule
22.06.2011
Из любопытства, как OpenGrok получает правильные перекрестные ссылки? Есть ли где-нибудь полный поиск имени Java?
- person Ira Baxter; 22.06.2011
OpenGrok не связывает методы/классы и т. д.
- person pathikrit; 22.06.2011