无法在项目 produit-webapp 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile)
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project produit-webapp
我有一个 web 应用程序,我尝试使用 maven 编译,不幸的是它在执行 mvn clean package
时不起作用。在 Whosebug 上有很多问题看起来是一样的,但是 none 解决了我的问题。
我仔细检查了 如果 Java 的版本与 (设置为 1.7)是否相同 JAVA_HOME + Maven 编译插件的目标和源代码。 是.
我试过升级和降级maven编译插件没有成功。
不幸的是,无法将我的 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
您可能想要查看您的网络应用程序(在 pom.xml
中)的 依赖项 。你说你的 pom.xml 很长,我猜它之前与其他模块一起工作并且你添加了一个新模块。
如果是这样,您应该尝试删除对新模块的依赖。如果它编译正常,那么至少,你知道它来自哪里。
要进行进一步调查,将新模块添加回您的 webapp,然后删除新模块中的依赖项。将依赖项一一添加回来,找到导致问题的那个。
一旦找到罪魁祸首的依赖项,请查看此依赖项的依赖项(ctrl + left click
在 Eclipse 中打开相关的依赖项 pom.xml
)并执行与之前相同的操作:删除依赖项并将它们添加回去以找出导致问题的原因。
如何正确删除依赖项:
您应该使用 <exclusion>
标签,而不仅仅是注释掉依赖项,请参阅 this 页面了解如何操作。
如果你有很多依赖项,一个一个地排除模块可能会很长时间,所以你可以通过删除一半来更快地完成它并查看它是否正在编译。如果它没有编译,则意味着罪魁祸首的依赖性在另一半内。尝试使用应该编译的另一半。重复这部分的一半,直到找到负责人(有点像 binary search)
此解决方案 仅推荐 以找出问题的根源。它在编译时消除了错误,但您的 webapp 可能会在 runtime 上抛出错误,因为它需要您删除的依赖项!
我有一个 web 应用程序,我尝试使用 maven 编译,不幸的是它在执行 mvn clean package
时不起作用。在 Whosebug 上有很多问题看起来是一样的,但是 none 解决了我的问题。
我仔细检查了 如果 Java 的版本与 (设置为 1.7)是否相同 JAVA_HOME + Maven 编译插件的目标和源代码。 是.
我试过升级和降级maven编译插件没有成功。
不幸的是,无法将我的 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
您可能想要查看您的网络应用程序(在 pom.xml
中)的 依赖项 。你说你的 pom.xml 很长,我猜它之前与其他模块一起工作并且你添加了一个新模块。
如果是这样,您应该尝试删除对新模块的依赖。如果它编译正常,那么至少,你知道它来自哪里。
要进行进一步调查,将新模块添加回您的 webapp,然后删除新模块中的依赖项。将依赖项一一添加回来,找到导致问题的那个。
一旦找到罪魁祸首的依赖项,请查看此依赖项的依赖项(ctrl + left click
在 Eclipse 中打开相关的依赖项 pom.xml
)并执行与之前相同的操作:删除依赖项并将它们添加回去以找出导致问题的原因。
如何正确删除依赖项:
您应该使用 <exclusion>
标签,而不仅仅是注释掉依赖项,请参阅 this 页面了解如何操作。
如果你有很多依赖项,一个一个地排除模块可能会很长时间,所以你可以通过删除一半来更快地完成它并查看它是否正在编译。如果它没有编译,则意味着罪魁祸首的依赖性在另一半内。尝试使用应该编译的另一半。重复这部分的一半,直到找到负责人(有点像 binary search)
此解决方案 仅推荐 以找出问题的根源。它在编译时消除了错误,但您的 webapp 可能会在 runtime 上抛出错误,因为它需要您删除的依赖项!