Заставить Netbeans и Subversion играть вместе с библиотеками? - PullRequest
4 голосов
/ 13 ноября 2008

Мне трудно понять, как добавить .jar / library в проект Netbeans таким образом, чтобы я мог зафиксировать его в репозитории.

Типичный способ добавить библиотеку (в соответствии с документами Netbeans, через которые я уже прошел) заканчивается тем, что она является локальной для меня. Любой, кто проверяет мой проект, заканчивает тем, что пропустил мою требуемую библиотеку.

Вставка вручную и попытка обойти Netbeans приводит к зависанию Netbeans при попытке сканирования проекта ...

Итак, как я могу сказать Netbeans, чтобы он взял jar в качестве библиотеки и включил ее в мой проект таким образом, чтобы Subversion мог с этим справиться?

Ответы [ 7 ]

2 голосов
/ 24 декабря 2008

В NetBeans 6.5 есть новая функция (пути на основе переменных в проектах), которая должна упростить это.

Подробнее см. http://wiki.netbeans.org/NewAndNoteWorthyNB65#section-NewAndNoteWorthyNB65-VariableBasedPathsInJ2SEJ2EEProjects. Обратите внимание, что на снимке экрана содержатся ссылки на переменные в настройщике библиотеки.

2 голосов
/ 13 ноября 2008

Есть несколько способов исправить это.

A. Когда вы определяете свою библиотеку, используйте путь к общему местоположению. Расположение, идентичное на компьютере каждого, например расположение JAR, установленного с приложением стороннего производителя, в Program Files или / usr / local / работает хорошо или на сетевом диске.

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

B. Отредактируйте файл project.properties, чтобы использовать относительный путь. Откройте файл project.properties и найдите «libs.LIBRARY_NAME.classpath=...». Это будет местоположение по умолчанию, используемое, если библиотека не определена.

Измените это, чтобы использовать путь относительно вашего проекта и сохранить файлы JAR в вашем проекте. Например: libs.Log4J.classpath=lib/log4j.jar

Имейте в виду, что определение библиотеки в вашем менеджере библиотек переопределит это значение - поэтому убедитесь, что вы синхронизируете их (то есть добавляете номер версии к имени библиотеки!).

C. Используйте предложение Винсента об использовании системы сборки, такой как Maven. Процесс сборки Maven позаботится о загрузке зависимостей и т. Д. Netbeans имеет плагины для нескольких популярных систем сборки.

1 голос
/ 06 ноября 2010

Простой способ упаковать ваши lib / jars в ваш проект, так что subversion «просто обрабатывает», и вы можете собрать его со всеми подключенными библиотеками, готовыми к компиляции и запуску, - это включить их все в каталог вашего проекта через опция «разделяемые библиотеки» путем управления папкой библиотек.

При создании нового проекта вы можете указать «Использовать выделенную папку для хранения библиотек», а затем использовать предложенный относительный путь. \ Lib. Если у вас есть существующий проект, вы можете редактировать его свойства, категорию библиотек и искать папку библиотек. Снова при первом запуске будет предложено. \ Lib, а затем предложено скопировать существующие зависимости в эту папку. Эти графические действия должны дать результаты, аналогичные ответу Джеймса Шека «B».

Зафиксируйте проект с новыми добавленными библиотеками в. \ Lib, и вы сможете извлекать и строить из любого места и знать, что у вас будут те же библиотеки (в той же версии), что и у вас при последней сборке и фиксации .

Я не знаю, как долго эта функция была в NetBeans. Для более подробной информации см .:

http://netbeans.org/kb/docs/java/project-setup.html#projects-shared-libraries

1 голос
/ 27 сентября 2010

Я использую среду IDE NetBeans 6.5.1, и лучшее решение, которое я нашел на данный момент, - включить необходимые библиотеки с локального хоста, а затем изменить их пути на относительные. После этого вам необходимо вручную удалить библиотеки из проводника файлов NetBeans , а затем снова вручную скопировать их из расположения их ОС на вашем компьютере в проводник файлов. Таким образом, NetBeans обнаруживает изменение, и вы можете зафиксировать его в хранилище.


Примечание. Я настоятельно рекомендую после обновления очистить и собрать проект.

1 голос
/ 13 ноября 2008

Не совсем ответ на ваш вопрос, но ... как правило, вы не должны включать эти библиотеки в свой репозиторий Subversion. Обычно нет необходимости управлять ими. Вам может потребоваться создать центральный репозиторий, аналогичный тому, что происходит с Maven. Если вы используете Maven, вы можете создать локальный репозиторий библиотек на сервере, доступном для группы. Зависимости от этих библиотек вводятся в файл pom.xml, а это в хранилище Subversion. Теперь, когда члены команды извлекают код из Subversion, все они имеют доступ к репозиторию maven.

[Я ищу ссылку на это прямо сейчас. Когда я найду его, я отредактирую этот ответ.]

0 голосов
/ 30 октября 2009

ОК, рабочее решение, к которому я сейчас перешел, - это извлечь файлы классов из jar-файлов и выгрузить их в область Source Packages. Затем все это фиксируется в хранилище, а также избегает необходимости обрабатывать отдельный каталог "lib" на этапе развертывания.

Это решение делает все, что я ищу, но я чувствую себя очень грязно, делая это таким образом. Это кажется ужасно сломанным и неправильным ...: -)

0 голосов
/ 23 декабря 2008

В итоге я просто скачал свой собственный набор и поместил их на свой локальный диск для этого проекта. Я настроил свои Netbeans, чтобы посмотреть там и предупредил остальных, что я сделал ... В конце концов, нам придется сделать что-то более масштабируемое, хотя ...: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...