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

Проект Java Dynamic Web с Maven и Eclipse

У меня есть несколько вопросов о создании веб-приложения Java с Maven и Eclipse:

  • Как создать веб-проект Java с сервлетами, jsp и другими классами с помощью Maven?
  • Он создает простую структуру каталогов, src- > main- > java. Где и как я могу поместить папку web-inf?
  • Нужно ли добавлять jdbc-драйверы вручную в папку внутри web-inf/lib, или это нормально, просто указать зависимость?
  • Есть ли способ проверить сервлеты с помощью junit?
4b9b3361

Ответ 1

Ничего себе, много вопросов сразу. Я признаю, что настройка проекта webapp с Maven и Eclipse может быть сложной задачей, поэтому я постараюсь ответить на все эти вопросы.

Создание проекта веб-приложения с помощью Maven

Как создать веб-проект java с сервлетами jsp и другими классами с помощью maven? Он создает простую структуру каталогов, src- > main- > java.

Когда вы создаете веб-проект Java, конечным продуктом должен быть WAR или EAR файл. WAR и EAR - файлы JAR с определенной структурой, которые могут быть развернуты в сервере приложений или контейнере сервлетов.

Как уже упоминалось, самый простой способ настроить проект Maven для веб-приложений - использовать архетипы:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp

Если мы создадим проект с этим архетипом, тогда будет создана простая структура каталогов и pom.xml. Этот проект следует стандартным макетам каталога Maven, который вы указываете, с /src/main/java/, /src/test/java и т.д. Maven генерирует WAR файл из этой структуры с целью войны: война.

Обратите внимание, что этот архетип предназначен для очень простого (устаревшего) веб-приложения, но это лучшая доступная начальная точка. Вероятно, вы захотите отказаться от файла web.xml и создать новый, поддерживающий Servlet 3.0.

Местоположение WEB-INF

Где и как я могу поместить папку web-inf?

По умолчанию Maven ожидает, что ресурсы, которые должны войти в корень WAR файла, такие как изображения, html-страницы и каталог WEB-INF, будут находиться в /src/main/webapp/. Таким образом, папка WEB-INF должна располагаться в /src/main/webapp/WEB-INF/.. Если вы используете maven-archetype-webapp, этот каталог автоматически создается вместе с образцом файла web.xml.

Интеграция Eclipse

Вы упомянули Eclipse в заголовке вопроса, и действительно возможно разработать Mavenized веб-приложения в Eclipse с плагином m2eclipse. Eclipse имеет хорошую поддержку для веб-приложений через WTP (Web Tools Platform).

Хотя многие руководства в Интернете (ошибочно) рекомендуют это, , вы не должны использовать команду mvn eclipse: eclipse для создания проекта Eclipse. Этот плагин может генерировать проекты WTP только для очень старых версий Eclipse (максимальный WTP 2.0). Вместо этого используйте плагин m2eclipse, как описано здесь.

Зависимости

Нужно ли добавлять jdbc-драйверы вручную в папку внутри web-inf/lib, или это нормально, просто указать зависимость?

Нет необходимости делать это вручную, поскольку одним из ключевых преимуществ Maven является управление зависимостями. Если вы добавите зависимость в pom.xml с областью компиляции или выполнения, файл JAR будет автоматически включен в каталог WEB-INF/lib/ файла WAR. Например, чтобы добавить зависимость драйвера Postgresql JDBC, добавьте это в свой pom.xml:

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.1-901.jdbc4</version>
</dependency>

Поскольку область неопределенности не определена, Maven предположит, что она находится в области по умолчанию. В результате Maven будет включать WEB-INF/lib/postgresql-9.1-901.jdbc4.jar в WAR файл.

Тестирование

Есть ли способ проверить сервлеты с junit?

Этот вопрос задан (и ответил) на Stackoverflow:

Ссылки

Ответ 2

Вам следует создать проект на основе архетипа Webapp Maven, а не по умолчанию, который вы используете.

Я использую SpringSource Tool Suite, который для этого упражнения совпадает с Eclipse с m2e. Создайте новый проект Maven и убедитесь, что вы выбрали следующий архетип:

enter image description here

Maven - это способ командной строки:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

Этот архетип поместит папку WEB-INF в нужное место (под src/main/webapp).

Дополнительную информацию можно найти на http://maven.apache.org/guides/mini/guide-webapp.html

Ответ 3

Просто создайте обычный "Динамический веб-проект". Затем щелкните правой кнопкой мыши имя проекта и выберите "Настроить > Преобразовать в проект Maven". Для завершения преобразования может потребоваться до минуты, поэтому будьте терпеливы. См. Следующую статью:

http://aykutakin.wordpress.com/2013/12/04/create-eclipse-dynamic-web-project-with-maven-2/

Если это не сработает, попробуйте следующее:

http://crunchify.com/how-to-create-dynamic-web-project-using-maven-in-eclipse/

Ответ 4

  • Шаг 1: создайте папку своего веб-приложения.
  • Шаг 2. Перейдите в эту папку в командной строке.
  • Шаг 3: используйте следующую команду:

mvn archetype: generate -DgroupId = com.helloworld -DartifactId = HelloWorldDemo-DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

DarchetypeArtifactId = maven-archetype-webapp создаст веб-проект maven.

  • Шаг 4: Теперь в командной строке перейдите в папку проекта и используйте следующую команду: mvn eclipse:eclipse -Dwtpversion=2.0, чтобы сделать ваш проект динамичным веб-проектом для eclipse, теперь импортируйте этот вновь созданный проект как " существующий проект"

Используйте плагин m2eclipse для eclipse, чтобы включить MAVEN в eclipe.

Web.xml будет находиться в \src\main\webapp\WEB-INF