Библиотеки, на которые ссылаются, не развертываются Eclipse - PullRequest
4 голосов
/ 04 марта 2011

Я настроил проект Google App Engine в Eclipse.Я добавил папку корневого уровня, чтобы содержать библиотеки для моего проекта.Я добавил все эти библиотеки в путь сборки для моего проекта.Код компилируется без ошибок.Когда я запускаю проект, я получаю ошибки запуска NoClassDef.Когда я добавляю эти библиотеки вручную в папку lib каталога war, эти ошибки исчезают.

Почему Eclipse не развертывает библиотеки для моего пути сборки для меня?Нужно ли иметь скрипт сборки для запуска Eclipse?Сценарий сборки, который будет копировать мои библиотеки в папку lib war dir?

Ответы [ 3 ]

3 голосов
/ 04 марта 2011

Для стандартного проекта Java EE библиотеки должны находиться в папке {web-app} / WEB-INF / lib .GAE требует, чтобы они тоже были там для загрузки в движок с вашим кодом.

В качестве альтернативы вы можете использовать Maven для определения ваших зависимостей и развертывания в GAE

ОБНОВЛЕНИЕ: проект GAE следует стандартному проекту Java EEструктура для создания и развертывания файла войны.Соглашение состоит в том, что ваша папка lib находится в {web-app} / WEB-INF / lib.Плагин Google автоматически генерирует такую ​​структуру (пример из документации плагинов):

MyTestProject
  src/
    log4j.properties
    META-INF/
      jdoconfig.xml
    com/
      mytestproject/
        MyTestProjectServlet.java
  war/  
    index.html
    WEB-INF/
      appengine-web.xml
      web.xml
      logging.properties
      classes/
      lib/
       ...App Engine JARs... 

Плагин позволяет изменять местоположение для вашего каталога "war", но не местоположение ваших библиотек, поскольку оно должно следовать JavaEE стандарт.

2 голосов
/ 07 ноября 2011

Если библиотека, которая не была добавлена ​​в папку lib, разрабатывается в той же рабочей области, я бы предложил включить фасет "Utility Module" в свойствах проекта проекта библиотеки. Иногда Eclipse не копирует jar в папку WEB-INF / lib, даже если Deployment Assembly и все остальное было настроено правильно.

2 голосов
/ 04 марта 2011

Вы можете добавить библиотеки непосредственно в вашу war / lib, а затем щелкнуть правой кнопкой мыши по библиотекам, чтобы добавить их в путь сборки.

Не знаю, почему он не развертывает библиотеки libs на вашем пути сборки, но я работал с Eclipse годами и всегда делал это так, как я описал. Затем я просто развертываю через eclipse и не использую скрипт сборки.

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