【问题标题】:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project produit-webapp无法在项目 produit-webapp 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile)
【发布时间】:2018-06-12 14:34:48
【问题描述】:

我有一个 web 应用程序,我尝试使用 maven 进行编译,不幸的是它在执行 mvn clean package 时无法正常工作。 stackoverflow 上有很多问题看起来都一样,但 none 解决了我的问题。

我仔细检查了 Java 版本是否相同(设置为 1.7)的 JAVA_HOME + Maven 编译插件的目标和源。

我尝试升级和降级 maven compile 插件 没有成功

不幸的是,无法将我的 pom.xml 放在这里,因为它有 +1500 行长。

在我将一个新的 maven 模块(具有 firebase 作为依赖项)添加到我的 produit-webapp 后发生此错误。这个模块编译得很好。

使用完整的调试日志运行它得到的错误输出:

[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

【问题讨论】:

    标签: java maven-2


    【解决方案1】:

    您可能想要查看您的 web 应用程序的 依赖项(在 pom.xml 中)。您说您的 pom.xml 很长,我猜它之前可以与其他模块一起使用,并且您添加了一个新模块。

    如果是这样,您应该尝试删除对新模块的依赖。如果它编译得很好,那么至少你知道它来自哪里。


    要进行进一步调查,在您的 web 应用中重新添加新模块,然后删除新模块中的依赖项。将依赖项一一添加回来以找到导致问题的依赖项。

    一旦你找到了罪魁祸首的依赖,看看这个依赖的依赖是什么(ctrl + left click在Eclipse中的依赖打开相关的pom.xml)并像以前一样做:删除依赖并将它们添加回来找到是什么导致了问题。

    如何正确移除依赖:

    您应该使用<exclusion> 标签,而不仅仅是注释掉依赖项,请参阅this 页面了解如何这样做。

    如果你有很多依赖,可能会很长时间一个一个地排除模块,所以你可以通过删除一半来更快地完成它,看看它是否正在编译。如果它没有编译,那么这意味着罪魁祸首依赖在另一半内。尝试使用应该编译的另一半。重复这部分的一半,直到找到责任人(有点像 binary search


    此解决方案仅推荐用于查找问题的根源。它会在编译时删除错误,但您的 webapp 可能会在 runtime 上抛出错误,因为它需要您删除的依赖项!

    【讨论】:

    • 我的新模块编译正常,我得到一个[SUCCESS],所以我认为它与它无关。这是我的 webapp 没有编译。
    • @DaveSmith 这很正常,因为您的新模块正在“单独”编译(= 只有它自己的依赖项)。它与其他模块没有冲突,因为它没有“看到”它们。添加到 webapp 时,这些依赖项可能会与其他依赖项发生冲突。
    • 哦,我明白了,好的,我会试试你的解决方案
    • 有效!我发现了错误,它与我什至不需要的依赖项冲突。非常感谢!
    猜你喜欢
    • 2017-06-23
    • 2022-01-04
    • 2018-03-04
    • 2016-08-06
    • 1970-01-01
    • 2017-02-18
    • 2020-03-24
    • 2019-04-09
    • 2017-07-20
    相关资源
    最近更新 更多