Исходный код Java отображается в браузере?

У меня есть исходный код Java в стандартной структуре каталогов src/lib/test/ для моего проекта. Я хочу создать веб-представление моего исходного кода, где я могу запустить браузер и увидеть выделенный синтаксис, пронумерованный код строки. Я не только хочу этого, но также хочу, чтобы файлы были правильно связаны (например, щелкнув имя метода/класса/интерфейса и т. д. в представлении кода на веб-странице, это приведет меня к «стилю Eclipse» на соответствующую страницу). Есть ли какое-нибудь программное обеспечение, которое уже делает это? Я знаю, что есть тонны подсветки синтаксиса js и css, так что эта часть проста, и поэтому меня больше интересует часть ссылок.


person pathikrit    schedule 22.06.2011    source источник
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
comment
Потрясающе - почти то, что я искал. Добавьте номера строк и универсальный поиск по коду в стиле OpenGrok, а также улучшенную подсветку синтаксиса (code.google .com/p/google-code-prettify) и поддерживать Java6, и я получу именно то, что хочу! - person pathikrit; 22.06.2011
comment
нет, я в Маунтин-Вью, но я ездил в Юта-Остин, и да, я хотел бы поиграть с бета-версией. Моя электронная почта находится в моем профиле. Спасибо! - person pathikrit; 22.06.2011
comment
@wrick — в вашем профиле указано, что вы находитесь в Остине. Пора обновить :-} - person Ira Baxter; 23.06.2011
comment
Браузер не выполняет поиск; он производит чистый HTML. Вы можете увидеть поисковую систему для крупномасштабной многоязычной системы по адресу www.semanticdesigns.com/Products/SearchEngine. - person Ira Baxter; 23.06.2011

Я думаю, что лучше всего вам подойдет Cobertura. Из коробки он будет генерировать хорошие HTML-версии вашего источника. В качестве дополнительного преимущества он также будет генерировать отчет о покрытии кода. ;)

Maven JXR также является еще одним вариантом (если вы используете Maven).

person Will Iverson    schedule 22.06.2011
comment
ОП сказал, поэтому меня больше интересует часть перекрестных ссылок. Создает ли Coberatura правильные перекрестные ссылки? - person Ira Baxter; 22.06.2011
comment
Я только что проверил последнюю версию, Cobertura, похоже, не делает перекрестных ссылок, но Maven JXR делает. - person Will Iverson; 22.06.2011
comment
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
comment
Из любопытства, как OpenGrok получает правильные перекрестные ссылки? Есть ли где-нибудь полный поиск имени Java? - person Ira Baxter; 22.06.2011
comment
OpenGrok не связывает методы/классы и т. д. - person pathikrit; 22.06.2011