Maven编译失败(但是Eclipse下的编译是成功的) [英] Maven compilation failes (but compilation under Eclipse is successful)

查看:439
本文介绍了Maven编译失败(但是Eclipse下的编译是成功的)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

While building my web project from Eclipse, everything is fine: no errors, no warnings.

然而,在使用 Maven 构建项目时,失败。以下是输出格式 mvn compile

However while building project with Maven it failes. Below is the output form mvn compile:


c:\Users\ jwa\Desktop\tets\traffic_web> mvn
compile -e
+打开堆栈跟踪错误。 [INFO]扫描项目... [INFO]
---------------------------------- -------------------------------------- [INFO]建设traffic_web [INFO]

任务段:[编译] [INFO]
--------------------------------- --------------------------------------- [INFO] [资源:资源
{execution:default-resources}]
[警告]使用平台编码
(实际上是Cp1250)来复制过滤的
资源,即构建是平台
依赖! [INFO] skip non existing
resourceDirectory
c:\Users\jwa\Desktop\tets\traffic_web\src\main\resources
[INFO] [编译器:编译{执行:
default-compile}] [INFO]编译22
源文件到
c:\Users\jwa\Desktop\tets\traffic_web\target\课程
[INFO]
-------------------------------------- ---------------------------------- [错误] BUILD FAILURE [INFO]
---- -------------------------------------------------- ------------------ [INFO]编译失败

c:\Users\jwa\Desktop\tets\traffic_web>mvn compile -e + Error stacktraces are turned on. [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building traffic_web [INFO]
task-segment: [compile] [INFO] ------------------------------------------------------------------------ [INFO] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (Cp1250 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory c:\Users\jwa\Desktop\tets\traffic_web\src\main\resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 22 source files to c:\Users\jwa\Desktop\tets\traffic_web\target\classes [INFO] ------------------------------------------------------------------------ [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure

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\Encryptor.java:[7,15] sun.misc.BASE64Encoder is Sun propriet ary API and may be removed in a future release

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\Session。 java:[3,25]
package javax.servlet.http不
exis t

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\Session.java:[3,25] package javax.servlet.http does not exis t

c:\Users\jwa\Desktop\tets\traffic_web\src\\ \\ traffic_web\tools\Session.java:[15,21]
找不到符号符号:class
HttpSession位置:class
traffic_web.tools.Session

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\Session.java:[15,21] cannot find symbol symbol : class HttpSession location: class 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:[6,20] package javax. servlet does not exist

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:[7,20] package javax. servlet does not exist

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:[8,20] package javax. servlet does not exist

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java :[10,58]
找不到s ymbol符号:class
ServletContextListener public class
ServletContextListenerInitializer
implements ServletContextListener {

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[10,58] cannot find s ymbol symbol: class ServletContextListener public class ServletContextListenerInitializer implements ServletContextListener {

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

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[12,33] cannot find s ymbol symbol : class ServletContextEvent location: class traffic_web.tools.ServletContextListenerInitializer

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

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[15,35] cannot find s ymbol symbol : class ServletContextEvent location: class 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:[9,25] package javax.servlet.http does not exist

c:\Users\jwa\Desktop\tets\\ \\ traffic_web\src\traffic_web\controller\BoardController.java:[87,29]
找不到符号符号:class
HttpServletResponse位置:class
traffic_web.controller.BoardController

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\controller\BoardController.java:[87,29] cannot find symbol symbol : class HttpServletResponse location: class traffic_web.controller.BoardController

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\controller\BoardController.java:[116,37 ]
找不到符号符号:class
HttpServletResponse位置:class
traffic_web.controller.BoardController

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\controller\BoardController.java:[116,37] cannot find symbol symbol : class HttpServletResponse location: class traffic_web.controller.BoardController

c:\Users\ j b $ b tary API,可能会在
未来版本中删除

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\Encryptor.java:[27,15] sun.misc.BASE64Encoder is Sun proprie tary API and may be removed in a future release

c:\Users\jwa\Desktop\tets\traffic_web\\ \\ src\traffic_web\tools\Session.java:[17,27]
无法访问
javax.servlet.http.HttpSe rvletRequest

javax的类文件。 servlet.http.HttpServletRequest
未找到
返回attr.getRequest()。getSession(true); //
true == allow create

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\Session.java:[17,27] cannot access javax.servlet.http.HttpSe rvletRequest class file for javax.servlet.http.HttpServletRequest not found return attr.getRequest().getSession(true); // true == allow create

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\\ \\tools\ServletContextListenerInitializer.java:[17,8]
无法找到sy mbol符号:class
ServletContext位置:class
traffic_web.tools.ServletContextListenerInitializer

c:\Users\jwa\Desktop\tets\traffic_web\src\traffic_web\tools\ServletContextListenerInitializer.java:[17,8] cannot find sy mbol symbol : class ServletContext location: 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.java :55
6)
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan dleFailures(DefaultLifecycleExecutor.jav
a:387)
在org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
在org.apache.maven.lifecycle.DefaultLifecycleExecutor。执行(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)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在org.codehaus.cl assworlds.Launcher.launchEnhanced(Launcher.java:315)
在org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
在org.codehaus.classworlds.Launcher.mainWithExitCode(启动器。 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]
完成于:Mon Jun 28 21 :56:25 CEST
2010 [INFO] Final Memory:13M / 254M

[INFO] ------------------------------------------------------------------------ [INFO] Trace org.apache.maven.BuildFailureException: Compilation failure 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 a: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) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516) at 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 more [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1 second [INFO] Finished at: Mon Jun 28 21:56:25 CEST 2010 [INFO] Final Memory: 13M/254M

我的POM文件如下所示:

My POM file looks like that:

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

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

Can Someone help me how to fix that ?

Regards

推荐答案

您没有将servlet类添加为依赖关系。在Eclipse中,默认情况下显然存在,这就是为什么它可以从那里进行编译。将以下内容添加到pom(< build> ... 之前,取自 here ):

You haven't added the servlet classes as dependencies. There are apparently present per default in Eclipse, which is why it works to compile from there. Add the following to you pom (before <build>..., taken from here):

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

这篇关于Maven编译失败(但是Eclipse下的编译是成功的)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆