| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java tools & IDE's > Создание библиотек в NetBeans |
| Автор: COVD 22.2.2007, 22:38 |
| Решил оформить несколько классов проекта в виде библиотеки. Создал новый проект, переместил нужные классы туда и откомпилировал. Там создался jar . В основном проекте в разделе Libriaries добавил ссылку на этот jar. Откомпилировал основной проект - все замечательно. Проблема возникает, когда приходится редактировать библиотеку. Вношу изменения в библиотечные классы и компилирую. Библиотечный jar генерится заново и содержит все изменения. Открываю основной проект и вношу соответствующие изменения там. Компилирую - ошибка! Компилятор непонятно откуда извлекает старую версию библиотеки и сообщает о несоответствии. IDE видит новую версию библиотеки, а компилятор - старую. Рестарт IDE и компьютера не помогают. |
| Автор: powerOn 22.2.2007, 22:51 |
| 1) Попробуй сделать Clean and Build проектов. 2) Попробуй переподключить библиотеку к проекту. |
| Автор: Hidrag 22.2.2007, 22:54 |
| ИДЕ делает копию джарника в папку lib то есть ты изменяешь библиотеку а в либе у тебя лежит старая, клин анд билд, должен помочь, хотя как то не обращал внимание как он ведет себя с либами при этом... положи новую либу в папку lib |
| Автор: COVD 22.2.2007, 23:21 | ||||
Уже пробовал, не помогло.
В проектах нет папки lib. Есть dist. И основной проект имеет ссылку на jar, лежащий в dist библиотечного проекта. Мне кажется, так и должно быть, чтобы не копировать jar вручную при модификации библиотеки. |
| Автор: powerOn 23.2.2007, 01:46 |
Значит ты что-то делаешь не так. У меня все работает. Я специально проверил. 1) Создаем 2 проекта: Java Application и Java Class Library. 2) В проекте библиотеки создаем класс test.TestClass с одним методом (любым). Делаем его Build. В итоге получаем Jar библиотеки. 3) В менеджере библиотек создаем новую библиотеку используя получившийся на предыдущем этапе jar. 4) Подключаем новую библиотеку к Java Application. Используем этот класс в нем. Если поменять что-либо в test.TestClass и сделать build для его проекта, то эти изменения немедленно видны при работе в другом проекте. Еще можно подключать не библиотеку к проекту, а целый проект. Тогда даже одного build для главного проекта достаточно, что бы все изменения были учтены. |
| Автор: COVD 23.2.2007, 18:44 | ||
Изменения действительно видны, но компиляция основного проекта не всегда проходит. IDE и компилилятор иногда видят разные версии. Это случается когда рефакторингом меняешь, например, имя функции в библиотеке. Рефакторинг старается внести исправления и в связанных проектах, если они тоже открыты. И вот эта "услуга" и приводит к ситуации. Причем классы разных проектов aaa.AClass и bbb.AClass каким-то образом рассматриваются взаимосвязанно. |
| Автор: COVD 25.2.2007, 21:36 |
| Спасибо за участие. У меня все как-то образовалось. И сам не пойму, где ошибался. Просто некоторые действия IDE для меня были неожиданностью. Теперь уже можно признать, что приятной. |