Подтвердить что ты не робот

Eclipse buildpath автоматически принимает все JAR файлы внутреннего каталога

Как мне настроить путь сборки проекта к тому, чтобы набор файлов .jar, расположенных в том же каталоге, автоматически включался в путь сборки? Это означает, что добавление нового .jar файла в этот каталог (и обновление проекта) обновляет путь сборки? Rem: Я не работаю в Webapp, но в автономном приложении Java. Я знаю, что в Dynamic Web Project возможно, чтобы все .jars, расположенные в WEB-INF/lib, были включены в путь сборки. Можно ли сделать что-то подобное, но в автономном приложении?

Я использую Eclipse 3.4

4b9b3361

Ответ 1

AFAIK, нет нормального способа сделать это.

Если вы действительно хотите, там немного взломать. Файл Eclipse.classpath - очень простой XML. Вы можете написать задачу script или ant, которая проходит через каталог, обновляет .classpath xml и обновляет проект.

Ответ 3

Мой коллега реализовал контейнер classpath, который рекурсивно ищет банки в заданном каталоге в рабочей области, взгляните на http://openscada.org/2010/05/31/adding-a-directory-as-class-path-to-eclipse/

Сайт обновления можно найти на http://repo.openscada.org/p2/bob/R

Плагин имеет лицензию unter LGPL V3, и вы можете найти исходный код в https://github.com/ctron/org.openscada.bob

Ответ 4

Используйте Maven2 и используйте плагин Eclipse Maven2.

Ответ 5

Значение добавления нового .jar файла в этот каталог (и обновление проект) обновляет путь построения

Извините, Eclipse не поддерживает это.

Ответ 6

На машине с Windows вы можете сделать то, что сказал Ужин с одним лайнером в командной строке.

Предположим, что вы создали переменную в Eclipse под названием AXIS2_HOME, которая указывает на c:\javalibs\axis2-1.4.1, этот пример использует команду "for" для итерации всех файлов .jar в c:\javalibs\axis\lib и записывает узлам .classpath файл с именем addto.classpath. (Примечание: символ карата ^ экранирует < и > в командной строке, чтобы они не выполняли то, что они обычно делают.)

for %i in (c:\javalibs\axis2-1.4.1\lib\*.jar) do @echo     ^<classpathentry kind="var" path="AXIS2_HOME/lib/%~ni%~xi"/^>  >> addto.classpath

В итоге вы получите что-то подобное в файле...

<classpathentry kind="var" path="AXIS2_HOME/lib/activation-1.1.jar"/>
<classpathentry kind="var" path="AXIS2_HOME/lib/annogen-0.1.0.jar"/>
<classpathentry kind="var" path="AXIS2_HOME/lib/axiom-api-1.2.7.jar"/>
<classpathentry kind="var" path="AXIS2_HOME/lib/axiom-dom-1.2.7.jar"/>
...

Итак, вы можете скопировать эти строки и вставить их в очевидное место в фактическом файле .classpath.

Ответ 7

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

  • Создайте новый динамический веб-проект (настройки по умолчанию в порядке, так что это быстро)
  • Удалить каталог "lib" в разделе WebContent/WEB-INF/
  • Восстановите этот каталог, но создайте его как ссылку на каталог в главном проекте, где расположены ваши банки.
  • Проверить флажки веб-приложений на вкладке "Заказ и экспорт" в настройках пути Java Build Path вашего проекта.
  • Добавьте этот вновь созданный проект в зависимость от вашего основного проекта.

Это раздражает делать это для каждого каталога lib в вашем проекте, но это лучше, чем добавлять банки вручную каждый раз, когда вы обновляете svn (от ваших более удачливых коллег, использующих Idea). Стыдно, что Eclipse не имеет этой функции.

Ответ 8

Вы можете использовать пользовательскую библиотеку в Eclipse, что может быть полезным способом организации набора файлов jar. Если у вас есть набор файлов jar, которые вы используете в нескольких проектах, вы можете создать пользовательскую библиотеку, чтобы ссылаться на набор файлов jar. В результате все, что вам нужно будет включить в ваш путь построения проекта, это библиотека пользователя, а не все отдельные файлы jar.

<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/User Library name"/>

http://www.avajava.com/tutorials/lessons/what-is-a-user-library-and-how-do-i-use-it.html;jsessionid=ACD75E0A035BDC3AC656B481A7830FB6

Ответ 9

Я построил инструмент, который генерирует .classpath(и .project), но он требует, чтобы вы указали список баннеров в своей конструкции ant. Вероятно, его можно было бы расширить, чтобы прочитать список файлов jar.

http://sweetened.googlecode.com/

Ответ 10

Пробовали ли вы использовать подстановочный шаблон в classpath? Поэтому вы должны использовать что-то вроде:

javac MyApp.java -cp /some/path/to/libraries/*.jar

Я не использовал java некоторое время, поэтому не уверен, что это возможно, но это то, что я ожидал бы быть синтаксисом.