Gagal menjalankan tujuan org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) pada proyek produit-webapp

Saya memiliki aplikasi web yang saya coba kompilasi menggunakan maven, sayangnya tidak berfungsi saat melakukan mvn clean package. Ada BANYAK pertanyaan tentang stackoverflow yang tampaknya sama tetapi tidak ada yang menyelesaikan masalah saya.

Saya memeriksa dua kali apakah versi Java sama (disetel ke 1.7) untuk JAVA_HOME + target dan sumber plugin kompilasi Maven. Ya.

Saya mencoba meningkatkan dan menurunkan versi plugin kompilasi maven tidak berhasil.

Sayangnya, pom.xml saya tidak dapat ditempatkan di sini karena panjangnya +1500 baris.

Kesalahan ini terjadi setelah saya menambahkan modul maven baru (yang memiliki firebase sebagai ketergantungan) ke produit-webapp. Modul ini dikompilasi dengan baik.

Output kesalahan yang saya dapatkan dari menjalankannya dengan logging debug penuh:

[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

person Dave Smith    schedule 12.06.2018    source sumber


Jawaban (1)


Anda mungkin ingin melihat dependensi aplikasi web Anda (di pom.xml). Anda menyatakan bahwa pom.xml Anda sangat panjang, saya kira itu berfungsi sebelumnya dengan modul lain dan Anda menambahkan modul baru.

Jika demikian, Anda harus mencoba menghilangkan ketergantungan pada modul baru. Jika kompilasinya baik, setidaknya Anda tahu dari mana asalnya.


Untuk melakukan penyelidikan lebih lanjut, tambahkan kembali modul baru di aplikasi web Anda lalu hapus dependensi di dalam modul baru. Tambahkan kembali satu per satu dependensi untuk menemukan penyebab masalahnya.

Setelah Anda menemukan ketergantungan pelakunya, lihat apa saja ketergantungan dari ketergantungan ini (ctrl + left click pada ketergantungan di Eclipse untuk membuka pom.xml terkait) dan lakukan hal yang sama seperti sebelumnya: hapus ketergantungan dan tambahkan kembali untuk menemukan apa yang menyebabkan masalah.

Cara menghapus dependensi dengan benar :

Anda harus menggunakan tag <exclusion> dan tidak hanya mengomentari ketergantungan, lihat halaman ini tentang cara melakukannya.

Jika Anda memiliki banyak dependensi, mungkin akan memakan waktu lama untuk mengecualikan modul satu per satu, sehingga Anda dapat melakukannya lebih cepat dengan menghapus setengahnya dan melihat apakah sudah dikompilasi. Jika tidak dikompilasi berarti ketergantungan pelakunya ada di dalam separuh lainnya. Coba dengan separuh lainnya yang harus dikompilasi. Ulangi setengah bagian ini hingga Anda menemukan penyebabnya (seperti dalam penelusuran biner)


Solusi ini hanya direkomendasikan untuk mengetahui asal mula masalahnya. Ini menghilangkan kesalahan saat kompilasi tetapi aplikasi web Anda mungkin menimbulkan kesalahan pada runtime karena memerlukan ketergantungan yang Anda hapus!

person VictorGalisson    schedule 14.06.2018
comment
Modul baru saya dapat dikompilasi dengan baik, saya mendapatkan [SUCCESS] jadi menurut saya itu tidak ada hubungannya dengan itu. Ini aplikasi web saya yang tidak dapat dikompilasi. - person Dave Smith; 14.06.2018
comment
@DaveSmith Ini normal karena modul baru Anda dikompilasi sendiri ( = hanya dependensinya sendiri). Itu tidak bertentangan dengan modul lain karena tidak melihatnya. Saat ditambahkan ke aplikasi web, dependensi tersebut mungkin bertentangan dengan dependensi lainnya. - person VictorGalisson; 14.06.2018
comment
oh begitu, oke saya akan mencoba solusi Anda - person Dave Smith; 14.06.2018
comment
Berhasil ! Saya menemukan kesalahannya, itu adalah konflik dengan ketergantungan yang bahkan tidak saya perlukan. Terima kasih banyak ! - person Dave Smith; 14.06.2018