1.1. maven jar и war
Если в каталоге target
у вас появился файл ejb-example-1.0-SNAPSHOT.jar
вместо .war
, это может быть связано с тем, что Maven по умолчанию создает JAR-файлы для проектов, которые не имеют конфигурации для создания WAR-файлов. Чтобы исправить это, вам нужно убедиться, что вы правильно указали тип упаковки в вашем pom.xml
.
Исправление pom.xml
Убедитесь, что в вашем pom.xml
указано следующее:
<packaging>war</packaging>
Вот полный пример pom.xml
, который должен работать для вашего проекта:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>ejb-example</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
Шаги для сборки проекта
- Убедитесь, что вы сохранили изменения в
pom.xml
. - Выполните команду для очистки и сборки проекта:
bash
mvn clean package
- После успешной сборки в каталоге
target
должен появиться файлejb-example-1.0-SNAPSHOT.war
.
Развертывание на Tomcat
Теперь вы можете скопировать этот .war
файл в каталог webapps
вашего Tomcat и запустить сервер, как описано ранее.
Если у вас все еще возникают проблемы, пожалуйста, дайте знать, и я помогу вам разобраться!
В Maven проектах war
и jar
представляют собой разные типы артефактов, которые используются для различных целей.
- JAR (Java ARchive):
- Это архивный файл, который содержит скомпилированные Java классы и связанные с ними ресурсы (например, изображения, конфигурационные файлы и т.д.).
- JAR файлы обычно используются для библиотек и модулей, которые могут быть подключены к другим Java приложениям.
-
JAR файлы не содержат информации о веб-контейнерах и не могут быть развернуты на серверах приложений без дополнительной конфигурации.
-
WAR (Web Application Archive):
- Это специальный тип JAR файла, который предназначен для развертывания веб-приложений.
- WAR файлы содержат не только скомпилированные Java классы, но и веб-ресурсы, такие как HTML, JSP, CSS, JavaScript, а также файл
WEB-INF
, который содержит конфигурационные файлы и библиотеки, необходимые для работы веб-приложения. - WAR файлы могут быть развернуты на серверах приложений, таких как Apache Tomcat, JBoss и других.
Как это меняется
При изменении типа проекта с jar
на war
или наоборот, необходимо учитывать следующие моменты:
-
Структура проекта: Для WAR проекта структура каталогов будет включать папку
src/main/webapp
, где будут храниться веб-ресурсы. В JAR проекте такой папки не будет. -
POM файл: В
pom.xml
необходимо изменить элемент<packaging>
: - Для JAR:
<packaging>jar</packaging>
-
Для WAR:
<packaging>war</packaging>
-
Зависимости: В WAR проекте могут быть дополнительные зависимости, связанные с веб-технологиями (например, сервлеты, JSP и т.д.), которые могут не понадобиться в JAR проекте.
-
Конфигурация сервера: Для WAR проекта может потребоваться дополнительная конфигурация сервера приложений, чтобы правильно развернуть и запустить веб-приложение.
Таким образом, выбор между JAR и WAR зависит от того, что вы разрабатываете: библиотеку или веб-приложение.