- Как показано на приведенном выше GIF, в Eclipse структура проекта для средних и маленьких проектов обычно выглядит так. Поэтому мы используем открытый проект JspRun для демонстрации.
- Ссылка для загрузки: http://pan.baidu.com/s/1i3zrSf7
- Как показано на приведенном выше изображении, в IntelliJ IDEA поддерживается прямое открытие проектов Eclipse без необходимости импорта.
- Как показано на приведенном выше изображении, для пункта 1 выберите файл
.project
проекта для открытия.
> * Как показано на приведенном выше изображении для пункта 1, IntelliJ IDEA автоматически распознает каталог
src
для компиляции, поэтому этот каталог отображается в синем цвете.
- Как показано на приведенном выше изображении для пункта 2, каталог
WebRoot
Java Web проекта является корневым каталогом для всего проекта, поэтому этот раздел также очень важен, хотя его не требуется настраивать.- Как показано на приведенном выше изображении для пункта 3, некоторые конфигурационные файлы в каталоге
WEB-INF
, а также два каталогаclasses
иlib
являются критически важными. Каталогclasses
отображается в красном цвете, что означает, что он был исключен, так как компилированные файлы не имеют большого значения для разработки. Однако это не влияет на использование контейнером.![]()
- Как показано на приведенном выше изображении для пункта 1, поскольку этот проект является односоставным, мы можем выбрать каталог
classes
вWEB-INF
проекта для компиляции.
- Как показано на рисунке (красный круг), мы можем в зависимости от ситуации пометить любую директорию проекта одним из пяти типов директорий. Для этого нужно выбрать директорию, которую вы хотите пометить, и нажать соответствующую кнопку. Этот аспект очень важен и обязательно должен быть понят.
Sources
обычно используется для пометки директорий, подобныхsrc
, которые могут быть скомпилированы. Иногда не только директорияsrc
проекта должна быть скомпилирована, но и другие специальные директории также должны быть помечены как скомпилированные. Только директории, помеченные какSources
, могут содержать новые Java-классы и пакеты. Это следует запомнить.>> *Tests
обычно используется для пометки директорий, содержащих скомпилированные модульные тесты. В структурированном проекте Maven, основная директория — этоsrc
. Директориюsrc
мы не помечаем какSources
, а директориюsrc/main/java
— помечаем. Директория модульных тестов —src/test/java
, и директориюjava
мы помечаем какTests
, что означает, что она является директорией для модульных тестов. Обычно мы настраиваем эти директории в проектах Maven, но я сначала объясню это. Из этого можно увидеть, что IntelliJ IDEA поддерживает проекты Maven полностью.>> *Resources
обычно используется для пометки директорий с ресурсами. В проектах Maven директория ресурсов отдельно выделяется и имеет структуруsrc/main/resources
. Директориюresources
мы помечаем какResources
, что означает, что она является директорией ресурсов. Файлы в директории ресурсов будут скомпилированы и помещены в выходную директорию.
Test Resources
обычно используется для пометки директорий с ресурсами для модульных тестов. В проектах Maven директория ресурсов для модульных тестов отдельно выделяется и имеет структуруsrc/test/resources
. Директориюresources
мы помечаем какTest Resources
, что означает, что она является директорией ресурсов для модульных тестов. Файлы в директории ресурсов будут скомпилированы и помещены в выходную директорию.
Excluded
обычно используется для пометки директорий, которые нужно исключить. Исключенные директории не будут индексироваться в IntelliJ IDEA, что эквивалентно их игнорированию. Файлы кода в этих директориях не будут иметь функций проверки кода и умных подсказок.>> * По вышеуказанной информации, мы знаем, что для проектов, не являющихся проектами Maven, достаточно пометить директориюsrc
.> * Как показано стрелкой на рисунке выше, отмеченные каталоги имеют общую сводку справа. Важно отметить, что каталогclasses
, хотя он и отмечен какExcluded
, не отображается здесь из-за его специфичности и недоступности для редактирования.
- Как показано меткой 1 на рисунке выше, чтобы удалить метку каталога, можно щелкнуть крестик.
![]()
- Как показано меткой 1 на рисунке выше, это проект с одним модулем, где каталог сборки модуля может совпадать с каталогом сборки проекта, и оба они являются каталогом
classes
в подкаталогеWebRoot
.
> * Как показано красным кругом на рисунке выше, здесь отображаются все зависимости проекта, где красный цвет указывает на неизвестные зависимости IntelliJ IDEA. IntelliJ IDEA поддерживает импорт зависимостей по одному или импорт всех зависимостей из каталога. В данном случае это конкретные зависимости. Если зависимости проекта не имеют последовательности, то рекомендуется импортировать все зависимости из каталога, так как это более удобно. Поэтому я сначала удаляю все эти отдельные зависимости и затем импортирую их по каталогам.
- Как показано меткой 1 на рисунке выше, зависимости поддерживают пять операций.
- Плюс, указывает на возможность добавления новой зависимости.
- Минус, указывает на возможность удаления зависимости.
- Вверх стрелка, указывает на возможность перемещения зависимости вверх. Чем выше находится зависимость, тем раньше она загружается при запуске проекта. Поэтому для одной и той же зависимости разные версии могут иметь разные последовательности загрузки, что может привести к различным результатам.
- Вниз стрелка, указывает на возможность перемещения зависимости вниз, причина та же.
- Перо, указывает на возможность редактирования имени и пути зависимости.
![]()
- Как показано на рисунке выше, импорт зависимостей поддерживает
jar
файлы и каталоги, а также зависимости из разделаLibraries
проекта. Проекты с несколькими модулями могут зависеть от других модулей.
- Поскольку мы только что удалили все зависимости, показанные красным кругом, нам теперь нужно импортировать зависимости. Перед импортом мы сначала добавляем каталог
lib
проекта в разделLibraries
как общий каталог зависимостей. Как показано в GIF выше, это преобразование каталогаlib
в зависимость. Преимущество этого подхода заключается в том, что при добавлении новых зависимостей в проект, достаточно поместить их в каталогlib
, и они будут автоматически добавлены в проект, так как мы импортируем каталог, а не отдельные зависимости.
- Как показано на рисунке 1, добавьте зависимости из папки
lib
, находящейся в разделеLibraries
.
> * Для традиционных Java Web-проектов обычно требуется указать расположение файла
web.xml
. Как показано на приведенном выше GIF, это обычно настраивается в разделе Facts
. Facts
можно рассматривать как область конфигурации проекта, где управляются файлы конфигурации используемых фреймворков. Это специфическая для IntelliJ IDEA настройка.
- В дополнение к
web.xml
, который обычно требуется настроить, другие фреймворки, даже если они не настроены здесь, не повлияют на работу проекта, но у них есть недостатки. Например, в наших проектах обычно используется фреймворк Spring, который имеет множество конфигурационных файлов. Если вы настроите его здесь, вы заметите появление нескольких областей конфигурации проекта Spring в нижней части редактора IntelliJ IDEA. Это потому, что вы сообщите IntelliJ IDEA, что ваш проект использует фреймворк Spring, и тогда IntelliJ IDEA предоставит соответствующие функции конфигурации. То же самое относится к другим фреймворкам, таким как Hibernate.![]()
Artifacts
также является специфической для IntelliJ IDEA концепцией, которую можно рассматривать как место настройки конечного результата проекта. Например, для Java Web-проекта обычно требуется настроить его как распакованный WAR-пакет, чтобы контейнер мог запустить проект. Приведенный выше GIF демонстрирует настройку распакованного WAR-пакета. Его структура определяется предыдущими настройками модуля, поэтому если эти настройки не содержат ошибок, можно сократить количество шагов настройки. Однако иногда требуется внести изменения, например, по умолчанию выходная директория проекта создается с ошибкой, и я изменил ее на директориюwebRoot
проекта.- Эта настройка
Artifacts
будет использована при настройке Tomcat, поэтому ее следует учесть.
- Как показано на приведенном выше GIF, это полный процесс настройки Tomcat для проекта, некоторые аспекты которого требуют дополнительного объяснения, будут рассмотрены ниже.
Artifacts
также является специфической для IntelliJ IDEA концепцией, которую можно рассматривать как место настройки конечного результата проекта. Например, для Java Web-проекта обычно требуется настроить его как распакованный WAR-пакет, чтобы контейнер мог запустить проект. Приведенный выше GIF демонстрирует настройку распакованного WAR-пакета. Его структура определяется предыдущими настройками модуля, поэтому если эти настройки не содержат ошибок, можно сократить количество шагов настройки. Однако иногда требуется внести изменения, например, по умолчанию выходная директория проекта создается с ошибкой, и я изменил её на директориюwebRoot
проекта.- Эта настройка
Artifacts
будет использована при настройке Tomcat, поэтому её следует учесть.
- Как показано на приведенном выше GIF, это полный процесс настройки Tomcat для проекта, некоторые аспекты которого требуют дополнительного объяснения, будут рассмотрены ниже.
> Как показано на рисунке в появляющемся слое, IntelliJ IDEA поддерживает современные популярные контейнеры приложений на рынке, поэтому в большинстве случаев один экземпляр IntelliJ IDEA достаточно для разработки обычных проектов. Однако стоит отметить, что IntelliJ IDEA поддерживает эти контейнеры, но это не означает, что они включены в саму среду IntelliJ IDEA. Поэтому, как показано в демонстрационном видео, изначально я импортировал только Tomcat 7, но для данного проекта мне пришлось импортировать Tomcat 6. При этом я указал только путь к расположению Tomcat 6, и IntelliJ IDEA автоматически его распознала.
> * Как показано на рисунке 1, мы можем в любое время переключаться на разные контейнеры для проекта.
- Как показано на рисунке 2, мы можем указать параметры VM для запускаемого контейнера.
- Как показано на рисунке 3, это события, которые срабатывают при двух разных командах. Это специфично для IntelliJ IDEA и является ключевым моментом.
Action on update
Когда мы нажимаемCtrl + F10
для обновления контейнера, мы можем использовать настройки этого события для обновления контейнера. Я выбрал событиеОбновить классы и ресурсы
, которое является наиболее часто используемым. Это означает, что при нажатииCtrl + F10
для обновления контейнера, мы обновляем скомпилированные классы и ресурсы в контейнер. В режиме отладки это также известно какHotSwap
. Однако это горячее развертывание не так эффективно, как плагин JRebel.Action on window deactivation
Когда мы переключаемся между IntelliJ IDEA и браузером, мы можем указать события для обновления. Это обычно требуется при веб-разработке, когда нам нужно часто переключаться между IntelliJ IDEA и разными браузерами для тестирования. IntelliJ IDEA помогает нам выполнять определенные действия при этом переключении. Однако, если переключение происходит слишком часто, это может быть ресурсоемким. Поэтому я настроил это действие какНе делать ничего
, чтобы при переключении ничего не происходило.> * Как показано на рисунке 4, по умолчанию HTTP-порт Tomcat равен 8080. Если вам нужно изменить порт, вы можете сделать это здесь.
- Как показано на рисунке 5, этот момент уже был рассмотрен в предыдущих статьях. Здесь указывается, что делать перед запуском контейнера Tomcat. Это включает в себя действия
Build
иBuild artifacts
. Как показано в демонстрационном видео,Build artifacts
появляется автоматически после добавления артефакта в вкладкеDeployment
.## Запуск Tomcat
- После настройки конфигурации в IntelliJ IDEA, теперь настроим конфигурацию для данного проекта.
- Откройте ваш MySQL и выполните следующий скрипт для создания нового базового данных и пользователя:
CREATE DATABASE `jsprun` CHARACTER SET utf8;
CREATE USER 'jsprun'@'localhost' IDENTIFIED BY 'jsprun';
GRANT ALL PRIVILEGES ON jsprun.* TO 'jsprun'@'localhost';
FLUSH PRIVILEGES;
- Переключитесь на только что созданную базу данных
jsprun
и выполните скрипт данных из проекта, расположенный по пути:JspRun\WebRoot\install\jsprun_zh_CN.sql
.- Измените несколько свойств в файле
JspRun\WebRoot\config.properties
на следующие значения:dbuser = jsprun
dbpw = jsprun
![]()
- Как показано на приведенном выше GIF, нам не хватает зависимости от Tomcat.
- Как показано на приведенном выше GIF, после добавления зависимости от Tomcat, проект можно запустить.
- Как показано на приведенном выше изображении, это окончательный результат запуска проекта.
> * Как показано на приведенном выше изображении, кнопка остановки должна быть нажата дважды. После первого нажатия появляется череп, что не является остановкой, и требуется еще одно нажатие.
- Иногда, даже после двух нажатий, контейнер Tomcat может не остановиться полностью, что может привести к проблемам с занятостью портов. В этом случае вам потребуется открыть системный менеджер ресурсов и вручную завершить все процессы Java на системе.## Выход war-архива
- Как показано на приведенном выше GIF, помимо настройки в разделе Artifacts, требуется также настройка в контейнере, чтобы при запуске контейнера был создан war-архив.
- Из настроек можно понять, что war-архив по сути является сжатым представлением развернутого war-пакета.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )