Не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 3.1: compile (default-compile) в проекте produit-webapp - PullRequest
0 голосов
/ 12 июня 2018

У меня есть веб-приложение, которое я пытаюсь скомпилировать, используя maven, к сожалению, оно не работает при выполнении mvn clean package.Существует много вопросов о стековом потоке, которые кажутся одинаковыми, но нет решил мою проблему.

Я дважды проверил , если версия 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

1 Ответ

0 голосов
/ 14 июня 2018

Возможно, вы захотите взглянуть на зависимости вашего веб-приложения (в pom.xml).Вы указали, что ваш pom.xml очень длинный, я предполагаю, что он работал раньше с другими модулями, и вы добавили новый модуль.

Если это так, попробуйте удалить зависимость от нового модуля.Если он хорошо компилируется, то, по крайней мере, вы знаете, откуда он берется.


Чтобы продолжить исследование, добавьте новый модуль в ваше веб-приложение , а затем удалите зависимости внутриновый модуль.Добавьте обратно одну за другой зависимости, чтобы найти ту, которая вызывает проблему.

Найдя зависимость виновника, посмотрите, каковы зависимости этой зависимости (ctrl + left click от зависимости в Eclipse, чтобы открытьpom.xml) и выполните то же, что и ранее: удалите зависимости и добавьте их обратно, чтобы найти причину проблемы.

Как правильно удалить зависимости:

Вы должны использовать тег <exclusion>, а не просто комментировать зависимость, см. эту страницу о том, как это сделать.

Если у вас много зависимостей, она может быть долго исключенамодуль один за другим, так что вы можете сделать это быстрее, удалив половину его и посмотреть, если он компилируется.Если он не компилируется, то это означает, что преступная зависимость находится внутри другой половины.Попробуйте с другой половиной, которая должна скомпилироваться.Повторите с половиной этой части, пока не найдете ответственного (вроде как в двоичном поиске )


Это решение рекомендуется только чтобы узнать, откуда возникла проблема.Она устраняет ошибку при компиляции, но ваше веб-приложение может выдать ошибку на runtime , так как для этого нужна удаленная зависимость!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...