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

Ошибка компиляции Maven (но компиляция в Eclipse успешна)

При создании моего веб-проекта от Eclipse все в порядке: никаких ошибок, никаких предупреждений.

Однако при построении проекта с Maven он не выполняет. Ниже представлена ​​форма вывода mvn compile:

C:\Users\JWA\Desktop\TETS\traffic_web > МВН компилировать -e + Ошибка stacktraces ошибки включены. [INFO] Сканирование проектов... [INFO] -------------------------------------------------- ---------------------- [INFO] Создание traffic_web [INFO]
сегмент задачи: [компиляция] [INFO] -------------------------------------------------- ---------------------- [INFO] [ресурсы: ресурсы {выполнение: по умолчанию-ресурсы}] [ПРЕДУПРЕЖДЕНИЕ] Использование кодировки платформы (Фактически Cp1250) для копирования ресурсов, то есть сборка является платформой зависит! [INFO] пропустить не существующую resourceDirectory C:\Users\JWA\Desktop\TETS\traffic_web\SRC\основные\ресурсы [INFO] [компилятор: компиляция {выполнение: default-compile}] [INFO] Компиляция 22 исходные файлы C:\Users\JWA\Desktop\\ traffic_web ТЭЦ\цель\классы [ИНФОРМАЦИЯ] -------------------------------------------------- ---------------------- [ОШИБКА] СТРОИТЬ НЕИСПРАВНОСТЬ [INFO] -------------------------------------------------- ---------------------- [INFO] Ошибка компиляции

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\Tools\Encryptor.java: [7,15] sun.misc.BASE64Encoder является владельцем Sun API и может быть удален в будущем выпуск

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\Tools\Session.java: [3,25] пакет javax.servlet.http не exis t

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\Tools\Session.java: [15,21] не может найти символ символа: class Местоположение HttpSession: класс traffic_web.tools.Session

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\инструменты\ServletContextListenerInitializer.java: [6,20] пакет javax. сервлет не существует

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\инструменты\ServletContextListenerInitializer.java: [7,20] пакет javax. сервлет не существует

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\инструменты\ServletContextListenerInitializer.java: [8,20] пакет javax. сервлет не существует

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\инструменты\ServletContextListenerInitializer.java: [10,58] не удается найти символ s ymbol: class Открытый класс ServletContextListener ServletContextListenerInitializer реализует ServletContextListener {

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\инструменты\ServletContextListenerInitializer.java: [12,33] не удается найти символ s ymbol: class Местоположение ServletContextEvent: класс traffic_web.tools.ServletContextListenerInitializer

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\инструменты\ServletContextListenerInitializer.java: [15,35] не удается найти символ s ymbol: class Местоположение ServletContextEvent: класс traffic_web.tools.ServletContextListenerInitializer

C:\Users\JWA\Desktop\ТЭЦ\traffic_web\SRC\traffic_web\контроллер\BoardController.java: [9,25] пакет javax.servlet.http не существует

C:\Users\JWA\Desktop\ТЭЦ\traffic_web\SRC\traffic_web\контроллер\BoardController.java: [87,29] не может найти символ символа: class Местоположение HttpServletResponse: класс traffic_web.controller.BoardController

C:\Users\JWA\Desktop\ТЭЦ\traffic_web\SRC\traffic_web\контроллер\BoardController.java: [116,37] не может найти символ символа: class Местоположение HttpServletResponse: класс traffic_web.controller.BoardController

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\Tools\Encryptor.java: [27,15] sun.misc.BASE64Encoder - это Sun proprie tary API и могут быть удалены в будущий выпуск

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\Tools\Session.java: [17,27] не может получить доступ javax.servlet.http.HttpSe rvletRequest файл класса для javax.servlet.http.HttpServletRequest не найдено             return attr.getRequest(). getSession (true);// true == allow create

C:\Users\JWA\Desktop\TETS\traffic_web\SRC\traffic_web\инструменты\ServletContextListenerInitializer.java: [17,8] не может найти символ sy mbol: class Местоположение ServletContext: класс traffic_web.tools.ServletContextListenerInitializer

[INFO] -------------------------------------------------- ---------------------- [INFO] Trace org.apache.maven.BuildFailureException: Ошибка компиляции         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715)         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:55 6)         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.jav а: 387)         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)         на org.apache.maven.cli.MavenCli.main(MavenCli.java:362)         на org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)         at sun.reflect.NativeMethodAccessorImpl.invoke0 (Родной Метод)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)         на sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)         в java.lang.reflect.Method.invoke(Method.java:597)         на org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)         на org.codehaus.classworlds.Launcher.launch(Launcher.java:255)         на org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)         на org.codehaus.classworlds.Launcher.main(Launcher.java:375) Вызванный: org.apache.maven.plugin.CompilationFailureException: Ошибка компиляции         at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516)         на org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)         at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)         at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)         ... еще 17 [INFO] ------------------------------------------ ------------------------------ [INFO] Общее время: 1 секунда [INFO] Закончено на: Пн Июн 28 21:56:25 CEST 2010 [INFO] Окончательная память: 13M/254M

[INFO]

Мой файл POM выглядит так:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>masters.traffic</groupId>
  <artifactId>traffic_web</artifactId>
  <packaging>war</packaging>
  <name>traffic_web</name>
  <version>0.1.0</version>
  <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>                    
                </configuration>
            </plugin>
        </plugins>
  </build>

    ...

</project>

Может кто-нибудь помочь мне, как это исправить?

Привет

4b9b3361

Ответ 1

Вы не добавили классы сервлетов в качестве зависимостей. По-видимому, в Eclipse присутствует значение по умолчанию, поэтому он работает для компиляции оттуда. Добавьте к вам pom (до <build>..., взятый из здесь):

<dependencies>
  [...]
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.4</version>
    <scope>provided</scope>
  </dependency>
</dependencies>