如果从命令提示符处完成,则mvn clean命令在mvn clean命令后无法成功运行

时间:2011-04-06 21:27:55

标签: maven-2 compiler-errors m2eclipse dependency-management war

您好 在执行mvn clean命令后从命令行运行mvn package命令时,我收到一个奇怪的错误。 该错误是编译失败错误。

这是一条痕迹:

annotations are not supported in -source 1.3
06.04.2011 17.06.59 (use -source 5 or higher to enable annotations)
06.04.2011 17.06.59 @Override at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715)
06.04.2011 17.06.59 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
06.04.2011 17.06.59 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
06.04.2011 17.06.59 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
06.04.2011 17.06.59 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
06.04.2011 17.06.59 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
06.04.2011 17.06.59 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
06.04.2011 17.06.59 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
06.04.2011 17.06.59 at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
06.04.2011 17.06.59 at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
06.04.2011 17.06.59 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
06.04.2011 17.06.59 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
06.04.2011 17.06.59 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
06.04.2011 17.06.59 at java.lang.reflect.Method.invoke(Method.java:597)
06.04.2011 17.06.59 at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
06.04.2011 17.06.59 at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
06.04.2011 17.06.59 at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
06.04.2011 17.06.59 at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
06.04.2011 17.06.59 Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
06.04.2011 17.06.59 at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516)
06.04.2011 17.06.59 at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
06.04.2011 17.06.59 at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
06.04.2011 17.06.59 at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)

奇怪的是,当我从eclipse IDE / m2eclipse运行mvn package命令时,它运行得非常好(即使在从IDE运行mvn clean以及命令提示符之后)。当我从命令提示符运行mvn package命令时,前面的mvn package命令已经在目标文件夹中构建了WAR文件,该命令正常工作,并且创建war文件并覆盖目标文件夹中先前创建的war文件。但是当我从IDE / Command提示符运行mvn clean然后从命令提示符运行mvn package时,它会给我上面的错误并且编译失败。 我想自动化这个构建过程,所以我需要从命令行完成这个。

3 个答案:

答案 0 :(得分:2)

错误消息给出了提示:

  

使用-source 5或更高版本启用   注释   您必须将Compiler插件配置为至少使用Java 1.5进行编译。

答案 1 :(得分:2)

正如其他海报已经开始指出的那样,您正在尝试编译符合语言级别5(Java 5)的代码(它使用注释),但您的编译器设置是针对语言级别1.3设置的。

请参阅maven-compiler-plugin页面上的Setting the -source and -target of the Java Compiler

答案 2 :(得分:1)

Eclipse maven插件还安装了另一个Maven(核心)副本。因此,通过eclipse VS Command line运行maven命令时,很少有工作方式会有所不同。为了摆脱这种情况,请将eclipse配置为使用您期望使用的maven安装。窗口 - >偏好 - >行家 - >安装并将设置更改为指向您已下载的本地副本。