Java Eclipse中Maven[Compile Error]中的多个额外源目录

Java Eclipse中Maven[Compile Error]中的多个额外源目录,java,eclipse,maven,pom.xml,Java,Eclipse,Maven,Pom.xml,我正在从事一个“复杂的”/“结构良好的”Maven项目,尤其是我正在从事该项目的单个内部模块。我反对编译错误,因为它似乎找不到已经从菜单(右键单击项目)->Build Path->Link source链接的外部源中的Java类。 这是在我运行->mvn:compile时从控制台获取的一系列基本错误 [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [

我正在从事一个“复杂的”/“结构良好的”Maven项目,尤其是我正在从事该项目的单个内部模块。我反对编译错误,因为它似乎找不到已经从菜单(右键单击项目)->Build Path->Link source链接的外部源中的Java类。 这是在我运行->mvn:compile时从控制台获取的一系列基本错误

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project optimizer: Compilation failure: Compilation failure:
[ERROR] /Users/Ste/Desktop/eclip/workspace/planner/src/main/java/eu/planner/Module.java:[24,19] package jmetal.core does not exist
[ERROR] /Users/Ste/Desktop/eclip/workspace/planner/src/main/java/eu/planner/Module.java:[35,29] cannot find symbol
[ERROR] symbol: class Variable
[ERROR] /Users/Ste/Desktop/eclip/workspace/planner/src/main/java/eu/planner/Module.java:[39,11] cannot find symbol
[ERROR] symbol:   class Problem
[ERROR] location: class eu.planner.Module
[INFO] 100 errors 
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 45.090 s
[INFO] Finished at: 2015-05-02T10:46:45+01:00
[INFO] Final Memory: 21M/219M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project optimizer: Compilation failure: Compilation failure:
[ERROR] /Users/Ste/Desktop/eclip/workspace/planner/src/main/java/eu/planner/heuristics/SVariable.java:[234,9] method does not override or implement a method from a supertype
[ERROR] /Users/Ste/Desktop/eclip/workspace/planner/src/main/java/eu/planner/heuristics/SVariable.java:[237,24] cannot find symbol
[ERROR] symbol:   variable super
[ERROR] location: class eu.planner.heuristics.SVariable
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
添加-X将显示调试,但并不奇怪。它只需在末尾添加以下信息:

[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project optimizer: Compilation failure
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 19 more
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
我还尝试添加我正在处理的模块的POM,该构建助手取自此处(未成功):


org.codehaus.mojo
构建助手maven插件
生成源
添加源
/Users/Ste/Desktop/externalFolderWithJavaClasses
其中
plugin
元素位于
/project/build/plugins
中,而不是
/project/build/pluginManagement/plugins

我检查了项目的
target/classes
文件夹,它是空的

我不会从任何其他项目导入文件。刚刚从我的文件系统链接了一个文件夹。 您在屏幕截图中看到的路径与在编译错误中看到的路径不同,因为一开始我认为没有显示我的真实路径。 这里是2个截图:

有人知道怎么回事吗?多谢各位


另外,我使用的是Mac OS X x64、Eclipse Luna,如果对某些人来说这些信息是基本信息,那么该项目将从GitHub存储库中提取。

您的问题在某种程度上是有意义的。最初,您通过Eclipse向项目中添加了一个源文件夹,但不是通过maven。当您试图编译maven源代码时,maven会呕吐,因为它找不到您通过Eclipse添加的文件夹

当您使用build helper maven插件时,仍然会出现同样的错误,这有点令人惊讶。因为这是添加额外源文件夹的正确方法。我认为您只需要运行
mvn clean verify
,一切都应该恢复正常


在Eclipse内部,确保运行Maven->Update项目。。。您的项目上也应该有适当的源文件夹。

您的项目是否从任何其他项目导入文件,因为这就是您获得mojo failure Exception的原因。为了澄清我的情况,我添加了2个屏幕截图。但是,我不会从任何其他项目导入文件。您在屏幕截图中看到的路径与在编译错误中看到的路径不同,因为一开始我认为没有显示我的真实路径。我删除了链接的源代码,并重新添加了它。编译错误消失了,
目标/类
现在充满了.class文件(也与源文件夹相关)。为什么它只需要这样做,而没有像Build Maven Helper建议的那样在POM中进行任何奇怪的配置(这是许多其他用户的最佳解决方案)?我将在以后写下我的问题的最佳答案,前提是我的新问题(在后一个问题出现之后)将得到解决。新问题:我在src/Test/Java中有两个Java测试类,但在mvn:Test中只能识别其中一个。我将为这个问题创建一个新的相关问题,我不知道为什么,但我只是通过删除并再次添加源文件夹来解决了这个问题,正如您提到的那样(通过Eclipse)。这很奇怪,即使没有Build Maven Helper插件也能正常工作。无论如何,我不知道这是否是一个好主意写我以前的评论作为答案,这样最好的一个。你怎么认为?顺便说一句,如果我发现一些相关的问题,我会用你的答案来试一下。无论如何谢谢你