java无法执行目标组织。阿帕奇。专家插件:mavencompilerplugin:3.1:produitwebapp项目上的编译(defaultcompile)
我有一个webapp,我试图用maven编译它,不幸的是,它在执行mvn clean package
时不起作用。关于stackoverflow的问题很多,看起来都一样,但是没有一个解决了我的问题
我仔细检查了Java的版本是否与Maven compile插件的Java_HOME+目标和源相同(设置为1.7)<它是
我尝试升级和降级maven compile插件,但没有成功
不幸的是,这是不可能把我的pom。这里是xml,因为它有+1500行长
在我向我的produit webapp添加了一个新的maven模块(其依赖项为firebase)后,发生了此错误。这个模块编译得很好
使用完整的调试日志运行时得到的错误输出:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project produit-webapp: Compilation failure -> [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 produit-webapp: 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:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
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:862)
at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
# 1 楼答案
您可能希望查看您的webapp的依赖关系(在
pom.xml
)。你说你的pom。xml非常长,我猜它以前与其他模块一起工作,您添加了一个新模块如果是这样,您应该尝试删除对新模块的依赖关系。如果可以的话,至少你知道它是从哪里来的
要进行进一步调查,在webapp中重新添加新模块,然后删除新模块中的依赖项。逐个添加依赖项以查找导致问题的依赖项
找到罪魁祸首依赖项后,请查看此依赖项的依赖项是什么(
ctrl + left click
在Eclipse中依赖项上打开相关的pom.xml
),并执行与前面相同的操作:删除依赖项并重新添加它们以查找问题的原因如何正确删除依赖项:
您应该使用
<exclusion>
标记,而不仅仅是注释掉依赖项,请参阅this页了解如何操作如果您有很多依赖项,那么逐个排除模块可能需要很长的时间,所以您可以通过删除其中的一半并查看它是否正在编译来更快地完成。如果它没有编译,则意味着罪魁祸首依赖项位于另一半的内部。试着用另一半应该编译的。重复此部分的一半,直到找到负责人(类似于abinary search)
此解决方案是仅推荐,以查找问题的根源。它会在编译时删除错误,但您的webapp可能会在运行时上抛出错误,因为它需要您删除的依赖项