Сбой компиляции Maven (но компиляция в Eclipse прошла успешно) - PullRequest
17 голосов
/ 29 июня 2010

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

Однако при создании проекта с Maven это failes .Ниже приведена форма вывода mvn compile:

c: \ Users \ jwa \ Desktop \ tets \ traffic_web> mvn compile -e + Включены трассировки стека ошибок.[INFO] Сканирование проектов ... [INFO] ------------------------------------------------------------------------ [INFO] Building traffic_web [INFO]
Task-сегмент: [компилировать] [INFO] ------------------------------------------------------------------------ [ИНФО] [ресурсы: ресурсы {выполнение: ресурсы по умолчанию}] [ВНИМАНИЕ] Использование кодировки платформы (Cp1250на самом деле) копировать отфильтрованные ресурсы, т.е. сборка зависит от платформы![INFO] пропустить несуществующий resourceDirectory c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ main \ resources [INFO] [компилятор: compile {выполнение: default-compile}] [INFO] Компилировать 22 исходных файла в c:\ Users \ jwa \ Desktop \ tets \ traffic_web \ target \ classes [INFO] ------------------------------------------------------------------------ [ОШИБКА] СБОЙ СОЗДАНИЯ [ИНФО] ------------------------------------------------------------------------ [INFO] Ошибка компиляции

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ Encryptor.java: [7,15] sun.misc.BASE64Encoder является проприетарным API Sun и может быть удален в будущем выпуске

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools\ Session.java: [3,25] пакет javax.servlet.http не существует

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ Session.java: [15,21] не может найти символ символа: класс Местоположение HttpSession: класс traffic_web.tools.Session

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ ServletContextListenerInitializer.java: [6,20] пакет javax.сервлет не существует

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ ServletContextListenerInitializer.java: [7,20] пакет javax.сервлет не существует

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ ServletContextListenerInitializer.java: [8,20] пакет javax.сервлет не существует

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ ServletContextListenerInitializer.java: [10,58] не удается найти символ ymbol: класс ServletContextListener общедоступный класс ServletContextListenerInitizerServletContextListener {

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ ServletContextListenerInitializer.java: [12,33] не удается найти символ ymbol: класс ServletContextEvent расположение: класс traffic_web.tools.ServletContextListenerInitializer

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ ServletContextListenerInitializer.java: [15,35] не удается найти символ ymbol: расположение класса ServletContextEvent: класс traffictoweb.b.ServletContextListenerInitializer

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ controller \ BoardController.java: [9,25] пакета javax.servlet.http не существует

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

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ controller \ BoardController.java: [116,37] не удается найти символ символа: класс HttpServletResponse расположение: класс traffic_web.controller.BoardController

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ Encryptor.java: [27,15] sun.misc.BASE64Encoder - это собственный API Sun, который может быть удален в будущем выпуске

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 == разрешить создание

c: \ Users \ jwa \ Desktop \ tets \ traffic_web \ src \ traffic_web \ tools \ ServletContextListenerInitializer.java: [17,8] не удается найти символ sy mbol: расположение класса ServletContext: class traffic_web.tools.ServletContextListenerInitializer

[INFO] ------------------------------------------------------------------------ [INFO] Trace org.apache.maven.BuildFailureException:Ошибка компиляции в org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals (DefaultLifecycleExecutor.java:715) в org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle (DefaultLifecycleExecutor.jven:apma.cycle или jagg55). 6)DefaultLifecycleExecutor.executeGoal (DefaultLifecycleExecutor.java:535) в org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures (DefaultLifecycleExecutor.jav a: 387) в org.apache.maven.cycleecj.jpgorg.apache.maven.lifecycle.DefaultLifecycleExecutor.execute (DefaultLifecycleExecutor.java:180) в org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:328) в 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) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) на солнце.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.refclassworlds.Launcher.launchEnhanced (Launcher.java:315) в org.codehaus.classworlds.Launcher.launch (Launcher.java:255) в org.codehaus.classworlds.Launcher.mainWithExitCode (Launcher.java:430us) в org.classworlds.Launcher.main (Launcher.java:375) Причина: org.apache.maven.plugin.CompilationFailureException: ошибка компиляции в org.apache.maven.plugin.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:516) в org.apache.maven.plugin.CompilerMojo.execute (CompilerMojo.java:114) в org.apache.maven.plugin.DefaultPluginManager.executeMojo: по умолчаниюPlugin (at) по умолчанию.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals (DefaultLifecycleExecutor.java:694) ... еще 17 [ИНФО] ------------------------------------------------------------------------ [ИНФОРМАЦИЯ]Общее время: 1 секунда [ИНФО] Окончание: понедельник, 28 июня 21:56:25 CEST 2010 [ИНФО] Финальная память: 13M / 254M

[INFO]

My 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>

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

С уважением

1 Ответ

34 голосов
/ 29 июня 2010

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

<dependencies>
  [...]
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.4</version>
    <scope>provided</scope>
  </dependency>
</dependencies>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...