Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подготовка версии (как выбрать классы), нужны советы 
:(
    Опции темы
anonymouse
Дата 28.10.2004, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



Ситуация: Есть набор стандарнтых инструментов, которые писались и расширялись на протяжении времени. Этот набор вырос, и смысла в каждый из проектов вставлять библиотеку целиком нет смысла.

Проблема: Нужна выделить те классы в проекте, которые необходимы для данного проекта, а все ненужные удалить. Есстесно процесс должен быть автоматизирован.

Вопрос: Есть ли уже готовые средства, и если нет, то присоветуйте как бы это красиво организовать ?

--------------------
Много чего интересного...
PM MAIL   Вверх
redrick
Дата 29.10.2004, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



возникала у меня такая же проблема - самое дельное, что посоветовали - запустить с каким-то ключем, чтобы протрейсить загрузку классов. А вообще - в IDEA как минимум 4.5 где то вроде была галочка Import... Извиняюсь за размытость - не помню просто.... Может она за это и отвечает - типа будут ли включаться используемые классы в результирующий пакет или нет.


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
anonymouse
Дата 29.10.2004, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



Цитата

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

имеешь ввиду с ключем для javac.exe Хотелось бы поподробнее, не нашел ничего подходяшего

Цитата

А вообще - в IDEA как минимум 4.5 где то вроде была галочка Import...

скорее всего тогда - Export , но с IDEA я не работал.

У кого то есть еще идеи, пожелания ?

--------------------
Много чего интересного...
PM MAIL   Вверх
Domestic Cat
Дата 29.10.2004, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Один из вариантов: запустить

java -verbose:class myapp

На консоль будут выведены загружаемые классы.


--------------------

PM   Вверх
anonymouse
Дата 29.10.2004, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



На этапе исполнения не подходит. Точно также я мог просто ClassLoader подправить.
Проблема в том что мне тогда придеться проект полностью протестировать, и я никогда не буду уверен в том что какой нить класс не будет грузиться позже (у клиента)

Нужно делать полную трассировку по всем классам и даже методам. Чесно говоря я надеялся может кто плагин для Eclipse такой напишет. :)



--------------------
Много чего интересного...
PM MAIL   Вверх
anonymouse
Дата 4.11.2004, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



Неужели больше нет идей ?
Я так понимаю раз ответов нет, то никому этим заниматься не приходилось.
Неужели все собирают версии с мусором smile
или никто вопрос не понял smile
--------------------
Много чего интересного...
PM MAIL   Вверх
3,14
Дата 5.11.2004, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Лично я не пробовал но идея такая, просто провести reverse ingeneering и посмотреть что на что ссылается.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
redrick
Дата 5.11.2004, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



3,14
это самый очевидный и геморойный способ. Более того - речь идет о своем проекте, т. е. у вас даже исходник есть на руках, не нужно ничего реверсить-инженерить. Трабла в том, что запаришься лазить по имортам и смотреть что где юзается.


anonymouse
(навеяно предидущим постом)
а что собственно ? берем скармливаем Perl, или еще какому скрипту наши сорсы - получаем список нужных пакетов/классов. Это имхо нетрудно - объявления синтаксически идентифицируются. А потомнатравливаем скрипт на папку с распакованными пакетами, которые используются в проекте - в результате копим что нужно.
Потом - понятно, что все, что в JRE импотрить не надо

Вообще странно, - наверняка кто то уже такое делал... Вообще с Антом работали ?


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
3,14
Дата 5.11.2004, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Цитата(redrick @ 5.11.2004, 15:03)

вас даже исходник есть на руках, не нужно ничего реверсить-инженерить.


А что по твоему такое реверс инджинеринг, декомпиляция? Реверс инджинеринг и работает с исходниками. Используй Rational Rose он те запросто набрасает диаграму, что что инклюдит, ИМХО удобней перлового скрипта


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
Zandr
Дата 8.11.2004, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: 9
Всего: 13



1) в Idea есть Tools -> Optimize Imports - убивает все ненужные import ***
2) рекурсивно от main класса по всем методам пройтись, получить список нужных классов
3) Кто тебе дал гарантию, что где-нить в проекте нет чего-нить такого:
Код
Class.forName("my." + "package." + "My" + "Class");

Или другого пользования рефлекшенов... Просто интересно как ты будешь такие вещи выцеплять smile
PM MAIL   Вверх
redrick
Дата 8.11.2004, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 547
Регистрация: 7.1.2004
Где: Москва

Репутация: 3
Всего: 5



ну вообще да... тяжко =)) но наверно можно все таки - компилятор понимает, значит и скрипт сможет, если постараться. Только вот сказать легко, сделать ясен пень сложнее %)


--------------------
Имею Мнение Хрен Оспоришь   
PM MAIL ICQ   Вверх
3,14
Дата 9.11.2004, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1614
Регистрация: 18.6.2004
Где: Н. Новгород

Репутация: 6
Всего: 24



Согласен с Zandr, неужели столь велика необходимость разбивать библиотеку, что можно пойти на подобный риск?
Вообще выцепить такие вещи моно чем-нить типа
Код

cat *.java | grep forName

но не факт что в коде не останеться что-нить эдакого.


--------------------
Может быть, это только мой бред,
Может быть, жизнь не так хороша,
Может быть, я не выйду на свет,
Но я летал, когда пела душа...
PM MAIL   Вверх
anonymouse
Дата 9.11.2004, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 197
Регистрация: 18.8.2004

Репутация: нет
Всего: 1



Пардон за молчание. Второй сын родился, сами понимаете...
О Class.forName я сразу подумал. Да и не жду я для всех вариантов работающий алгоритм, обфускатору тоже надо мозги поправлять. Просто я думал что существуют уже готовые тулсы (плагины). Например есть плагин который показывает всех кто использует выбранный метод. Т.е. выбираешь метод, а тебе выводяться классы которые этот метод вызывают. Для данной задачи помоему не надо больше. Т.е. таким же образом можно было бы посмотреть какие классы вызываються из других. Компилятор это очень хорошо знает, ведь он компилярит только изменившиеся классы и зависимые от них классы.
Мне кажется что если сейчас такого нет то в ближайшее время обязательно должно появиться.
--------------------
Много чего интересного...
PM MAIL   Вверх
Domestic Cat
Дата 9.11.2004, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Цитата
Второй сын родился, сами понимаете...


Поздравляю smile smile


--------------------

PM   Вверх
rni
Дата 17.11.2004, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 10.3.2004

Репутация: 1
Всего: 3



Я использовал OPtimizer для Jbuilder. Там выводится список всех классов можно отфильтровать по имени пакета или класса также там пишется процент использования и если вижу CLASS NOT LOADED - первый признак мусора.
Конечно это не гарантирует, что в дальнейшем класс не будет загружен, но в своём коде разобраться и понять можно. smile
--------------------
r-xr-xr-x 3 мусорных ведра корня 14312 9 января 2000 perl
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.