【问题标题】:Maven compilation failes (but compilation under Eclipse is successful)Maven编译失败(但Eclipse下编译成功)
【发布时间】:2011-03-09 07:55:50
【问题描述】:

Eclipse 构建我的 Web 项目时,一切都很好:没有错误,没有警告

但是,在使用 Maven 构建项目时,它失败。下面是mvn compile的输出形式:

c:\Users\jwa\Desktop\tets\traffic_web>mvn 编译 -e +错误堆栈跟踪已打开。 [INFO] 正在扫描项目... [INFO] -------------------------------------------------- ---------------------- [INFO] 构建 traffic_web [INFO]
任务段:[编译] [信息] -------------------------------------------------- ---------------------- [信息] [资源:资源 {执行:默认资源}] [警告] 使用平台编码 (实际上是cp1250)复制过滤 资源,即构建是平台 依赖! [INFO] 跳过不存在的 资源目录 c:\Users\jwa\Desktop\tets\traffic_web\src\main\resources [信息] [编译器:编译{执行: default-compile}] [INFO] 编译 22 源文件到 c:\Users\jwa\Desktop\tets\traffic_web\target\classes [信息] -------------------------------------------------- ---------------------- [错误] 构建失败 [信息] -------------------------------------------------- ---------------------- [INFO] 编译失败

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\Encryptor.java:[7,15] sun.misc.BASE64Encoder 是 Sun propriet ary API,将来可能会被删除 发布

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。 servlet 不存在

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[7,20] 包javax。 servlet 不存在

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[8,20] 包javax。 servlet 不存在

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[10,58] 找不到 s 符号符号:class ServletContextListener 公共类 ServletContextListenerInitializer 实现 ServletContextListener {

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[12,33] 找不到 s 符号符号:类 ServletContextEvent 位置:类 traffic_web.tools.ServletContextListenerInitializer

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[15,35] 找不到 s 符号符号:类 ServletContextEvent 位置:类 traffic_web.tools.ServletContextListenerInitializer

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\controller\BoardController.java:[9,25] 包 javax.servlet.http 没有 存在

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\controller\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 是 Sun 专有的 tary API 并且可以在 未来版本

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\Session.java:[17,27] 无法访问 javax.servlet.http.HttpServletRequest 类文件 javax.servlet.http.HttpServletRequest 未找到 返回 attr.getRequest().getSession(true); // true == 允许创建

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[17,8] 找不到符号符号:类 ServletContext 位置:类 traffic_web.tools.ServletContextListenerInitializer

[信息] -------------------------------------------------- ---------------------- [信息] 跟踪 org.apache.maven.BuildFailureException: 编译失败 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:55 6) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.jav 答:387) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 在 org.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(Native 方法) 在 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: 编译失败 在 org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516) 在 org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) 在 org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 在 org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) ... 17 更多 [INFO] ------------------------------------------ ------------------------------ [INFO] 总时间:1 秒 [INFO] 完成时间:周一 6 月 28 日 21:56:25 CEST 2010 [INFO] 最终内存:13M/254M

[信息]

我的 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>

有人可以帮我解决这个问题吗?

问候

【问题讨论】:

    标签: java eclipse maven-2


    【解决方案1】:

    您尚未将 servlet 类添加为依赖项。 Eclipse 中显然存在默认设置,这就是为什么它可以从那里编译的原因。在你的 pom 中添加以下内容(&lt;build&gt;... 之前,取自 here):

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

    【讨论】:

      猜你喜欢
      • 2011-09-27
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      相关资源
      最近更新 更多