![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
isabsent |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Поставил NetBeans 6.8 (Java EE). Не понимает - ругается на
не смотря на то что библиотека в Tools->Libraries->Spring Framework 2.5 присутствует по умолчанию... Скачал библиотеку Spring framework 2.5.6 со springsource.org, разархивировал и попробовал подключить её в Tools->Libraries - никакого эффекта. Где я ошибаюсь? NetBeans почему-то начинает видеть подключенные библиотеки только если их подключать к каждому конкретному проекту в "Имя Проекта"->Propertis->Libraries или руками добавлять в jdk-.../jre/ext/ но это не кошерный способ насколько я понимаю - с зависимостями начинаются проблемы... Это сообщение отредактировал(а) isabsent - 28.8.2010, 20:45 |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Да, нужно подключать библиотеки к каждому проекту. Почему на ваш взгляд должно быть иначе? Какие проблемы с зависимостями от этого будут?
|
|||
|
||||
isabsent |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Например если мне в одном проекте нужны библиотеки Spring, то я должен именно к этому проекту добавить ВСЕ библиотеки, которые есть в дистрибутиве Spring? Мне почему-то кажется логичным подключить библиотеку ко всему NetBeans, чтобы когда я буду делать новый проект Spring уже не нужно было подключать снова к этому конкретному проекту библиотеки Spring. IDE уже будет знать о подключенных библиотеках и сама выбрать необходимые. Поясните плз правильный способ подключения библиотек или дайте ссылку на первоисточник - не могу найти...
|
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
У вас есть набор jar файлов, необходимых для работы spring. В NetBeans вы создаете библиотеку (меню tools -> libraries), потом полученную библиотеку подключаете к проектам (в свойствах проекта libraries -> add library). Библиотека создается один раз и может быть потом подключена к любому количеству проектов.
|
|||
|
||||
isabsent |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Понял, спасибо. Если мне нужно включить библиотеку в дистрибутив, то как я должен поступить чтобы не включать лишнего? Я же не знаю зависимостей между файлами в чужой библиотеке. Может мне не нужны все библиотеки Spring, а они все включаются NetBeans'ом после Build в дистрибутив. Самому выяснять что можно выкинуть чтобы кменьшить вес дистрибутива - это как-то странно. Компилятор это знает сам и гораздо лучше меня. Библиотеки, добавленные через "Имя Проекта"->Propertis->Libraries вроде бы в полном составе включаются в дистр - на сколько я понял, хотя может быть нужна всего одна-две. Какой в этом смысл? Логичнее было бы выбрать только те, которые присутствуют у меня в исходниках - которые import - и только их и включить.
Это сообщение отредактировал(а) isabsent - 29.8.2010, 12:54 |
|||
|
||||
kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
Насколько я знаю, нетбинс сам подтянет зависимости... Т. е. добавляй только те либы, которые нужны, а остальные подтянутся...
А еще лучще делай проекты на maven, он точно все зависимости сам разрулит, и недостающие библиотеки скачает... -------------------- ![]() |
|||
|
||||
isabsent |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Да вот я и не понимаю - зачем добавлять в конкретный проект либы? Я же указал необходимые либы для конкретного проекта словом import в исходниках. Что мешает НетБинсу пошарить в подключенных к нему (а не к конкретному проекту) либах и САМОМУ включить все что нужно в билд конкретного проекта? Какой смысл заставлять пользователя делать это руками, если эта процедура хорошо определена и легко выполнима самим НетБинсом? Пытаюсь просто понять логику всей этой процедуры...
Это сообщение отредактировал(а) isabsent - 29.8.2010, 15:57 |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Вообще говоря, класс с одним и тем же именем может существовать в разным библиотеках. И хотя это мало вероятно, но теоретически возможно. Как минимум, в разных версиях одной и тоже библиотеки. IDE должна как-то решить, какую библиотеку подключать. В принципе, ничто не мешает попросить пользователя выбрать нужную и списка подходящих. Это конечно интересная фитча, но я такой ни в одной IDE не видел. Для мавен проектов можно написать импорт, произойдет поиск по maven репозиторию и выпадет список с подходящими либами, которые можно подключить как dependency. Но почему-то мне кажется, что это не быстрая операция. Настолько не быстрая, что не будет непригодной. (Да, поиск артефактов по классу в мавен проектах у нетбинс имеется). |
|||
|
||||
isabsent |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 64 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Ну да - мне кажется что это было бы логично так реализовать. Странно что этого не сделано. Мне кажется что НетБинс умеет гораздо более сложные вещи делать по сравнению с этой процедурой.... Добавлено через 2 минуты и 47 секунд
Под Линуксом всякие пакет-менеджеры этим и занимаются. Довольно успешно кстати и почти незаметно. Так что просто можно взять оттуда - всё уже написано ![]() ![]() |
||||
|
|||||
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 2 Всего: 9 |
А как по вашему нетбинс должен разрулить такую ситуацию: есть класс A в a.jar, есть класс B в b.jar. Класс A юзает класс B. вы делаете import a. Предположим, нетбинс просекает это, и кладет вам с dit\lib a.jar. Но он же не знает, что классу a требуется класс b, и соответсвенно b.jar туда не положит, а вы при запуске получите classNotFoundException. Кроме того, если нет директивы import, это еще не значит, что какой-то класс не нужен проекту. Вы же можете сделать Class.forName("com.xxx.utils.myClass"), и в этом слуаче jar с этим классом долежн лежать в дистрибутиве. Ну и вообще, всякие бывают ситуации. Бывает, что у либы есть десяток зависимостей, но они опциональные. И тут уж только вы, путем чтения документации, определите, какие из них реально вам нужны в проекте, а какие можно выбросить. |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 6 Всего: 43 |
Правильный способ - использовать шаблоны проектов - project templates. Когда создаете новый проект, кликаете New Project. Netbeans в ответ предлагает выбрать тип проекта из зарегистрированных (предустановленных) шаблонов. Если там нет нужного (со Spring), то можно создать свой шаблон. Любой проект можно включить в Netbeans в виде шаблона. Tip: Create Your Own Project Template |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |